KR20020089308A - 쿼드펌핑 버스 아키텍처 및 프로토콜 - Google Patents

쿼드펌핑 버스 아키텍처 및 프로토콜 Download PDF

Info

Publication number
KR20020089308A
KR20020089308A KR1020027007528A KR20027007528A KR20020089308A KR 20020089308 A KR20020089308 A KR 20020089308A KR 1020027007528 A KR1020027007528 A KR 1020027007528A KR 20027007528 A KR20027007528 A KR 20027007528A KR 20020089308 A KR20020089308 A KR 20020089308A
Authority
KR
South Korea
Prior art keywords
bus
data
agent
address
phase
Prior art date
Application number
KR1020027007528A
Other languages
English (en)
Other versions
KR100565101B1 (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 KR20020089308A publication Critical patent/KR20020089308A/ko
Application granted granted Critical
Publication of KR100565101B1 publication Critical patent/KR100565101B1/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
    • 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
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)

Abstract

다수의 버스 에이전트들에 양방향 다분기 프로세서버스가 연결된다. 버스클록 주파수의 몇배의 속도로 구동 에이전트에 의해 버스로 다중 정보요소들을 출력하는 멀티펌핑 시그널링 모드로 버스를 동작시키면 버스처리율을 향상시킬 수 있다. 이 구동 에이전트는 정보요소의 샘플링 포인트들을 확인하도록 스트로브를 활성화시킨다. 요구용 정보요소들은 에컨대 1회 버스클록 사이클동안 2개의 정보요소들이 구동되는 더블펌핑 시그널링 모드를 이용해 구동될 수 있다. 데이터라인 전송을 위한 데이터요소들은 예컨대 1회 버스클록 사이클동안 4개의 데이터요소들이 구동되는 쿼드펌핑 시그널링 모드를 이용해 구동될 수 있다. 다중 스트로브신호들을 오프셋이나 스태거된 배열로 임시로 구동하면 스트로브 신호들의 주파수를 낮출 수 있다. 샘플링 포인트들을 확인하는데 스트로브 신호들의 한가지 형태의 에지(상승에지나 하강에지)만 이용하면 샘플링 대칭을 개선할 수 있다.

Description

쿼드펌핑 버스 아키텍처 및 프로토콜{QUAD PUMPED BUS ARCHITECTURE AND PROTOCOL}
오늘날 소프트웨어와 응용분야의 요구사항과 복잡성이 증가하면서, 프로세서의 처리율과 대역폭이 증가될 것이 요구되고 있다. 컴퓨터의 입출력속도나 대역폭, 메모리 사이즈 등 컴퓨터 성능을 제한할 수 있는 리소스들이 하나 이상 있을 수 있다. 컴퓨터 성능을 제한하거나 억압하는 리소스들중 하나는 하나 이상의 프로세서와 칩셋 사이에 배치된 프로세서버스나 전방버스의 속도와 대역폭이다. 예컨대 어떤 펜티엄 프로세서들(예, 인텔사의 펜티엄 프로 프로세서)는 64비트 데이터버스를 사용하고 프로세서 클록사이클당 8 바이트를 전송할 수 있으며, 4 클록사이클에 32바이트 캐시라인을 전송할 수 있다. 따라서, 프로세서 클록이 예를 들어 100㎒로 제공된다면, 데이터 전송속도는 초당 800 메가바이트일 것이다. 펜티엄 프로 프로세서 아키텍쳐의 상세내역은 1996년 1월자 ISBN 1-55512-259-0의 "Pentium Pro Family Developer's Manual, Volume 1: Specifications"을 보면 알 수 있다. 초당 800메가바이트의 데이터 전송속도는 많은 경우 충분하지만, 데이터 전송속도나 대역폭을 개선한 프로세서버스에 대한 필요성도 존재한다.
본 발명은 프로세서에 관한 것으로, 구체적으로는 쿼드펌핑 버스 아키텍처 및 프로토콜에 관한 것이다.
도 1은 본 발명의 실시예에 따른 컴퓨터를 도시한 블록도;
도 2는 본 발명의 일 실시예에 따른 프로세서 버스를 보여주는 도면;
도 3은 본 발명에 따른 두가지 트랜잭션들에 대한 버스 트랜잭션 위상 관계를 보여주는 타이밍도;
도 4는 본 발명에 따른 공통클록 시그널링 모드의 일례를 보여주는 타이밍도;
도 5는 본 발명에 따른 쿼드펌핑 시그널링 모드의 일례를 보여주는 타이밍도;
도 6은 본 발명에 따른 더블펌핑 시그널링 모드의 일례를 보여주는 타이밍도;
도 7은 트랜잭션 위상들 사이의 최소 지연을 보여주는 도면;
도 8은 본 발명에 따른 에이전트들 사이의 정보전송장치의 블록도;
도 9는 본 발명의 다른 실시예에 따른 에이전트들 사이의 정보전송장치의 블록도.
본 발명의 일 실시예에 따르면, 구동 에이전트에서 하나 이상의 수신 에이전트로 다분기 버스를 통한 정보전송방법이 제공된다. 구동 에이전트와 수신 에이전트 모두에 공통 버스클록이 제공된다. 구동 에이전트에서 하나 이상의 수신 에이전트로는 다음과 같은 버스 트랜잭션(transaction)이 생기는바: 1) 버스클록 주파수의 몇배의 속도로 어드레스 버스에 요구를 위한 다중 정보요소들을 구동 에이전트가 출력하고; 2) 어드레스 버스에 출력된 정보요소들을 수신 에이전트가 샘플링해야 하는 시기를 확인하도록 구동 에이전트가 첫번째 스트로브 신호를 활성화시킨다. 이 방법은 또한 구동 에이전트에서 하나 이상의 수신 에이전트로의 데이터 전송단계를 포함하는바: 1) 버스클록 주파수의 다른 몇배의 속도로 데이터 버스에 다중 정보요소들을 구동 에이전트가 출력하고; 2) 이 구동에이전트는 데이터버스에 출력된 정보요소를 수신 에이전트가 샘플링해야 할 시기를 확인하도록 두번째 스트로브를 활성화시킨다.
이하, 첨부 도면들을 참조하여 본 발명에 대해 자세히 설명하겠지만, 이들 설명은 단지 예를 든 것일 뿐이고 본 발명의 권리범위를 제한하는 것은 아니다. 본 발명의 범위는 첨부된 특허청구범위에 의해서만 제한되어야 한다.
Ⅰ. 서론
본 발명의 일 실시예에 따라, 다수의 버스 에이전트에 프로세서 버스가 연결된다. 몇몇 형태의 신호들은 공통 클록 시그널링 모드를 이용해 전송되는 반면 나머지 형태의 신호들은 멀티펌핑 시그널링모드를 이용해 전송되기 때문에 버스의 갯수를 줄일 수 있다.
공통클록 시그널링 모드에서, 제어신호 등의 신호들은 공통버스 클록의 주파수와 거의 같은 속도로 버스로 출력될 수 있다. 이 모드에서, 버스클록의 에지들은버스에서 구동되는 신호들을 샘플링하기 위한 포인트들을 확인한다.
버스클록 주파수의 몇배의 속도로 구동 에이전트에 의해 다중정보요소들이 버스로 출력되는 멀티펌핑 시그널링 모드에서 버스를 구동시키면 버스처리율을 향상시킬 수 있다. 구동 에이전트는 또한 스트로브 신호를 임시로 가동하여 멀티펌핑 시그널링 모드에서 구동되는 정보요소들의 샘플링 포인트들을 확인한다. 예컨대 1회의 버스클록 사이클중에 2개의 정보요소들이 구동되는 더블펌핑 시그널링 모드를 이용하면 요구를 위한 정보요소들을 구동할 수 있다. 예를 들어, 1회의 버스클록 사이클중에 4개의 데이터요소들이 구동되는 쿼드펌핑 시그널링 모드를 이용하면 데이터 라인전송을 위한 데이터요소들을 구동할 수 있다. 다중 스트로브 신호들을 오프셋이나 스태거 배열로 임시로 활성화시켜 스트로브 신호주파수를 감축할 수 있다. 스트로브 신호들의 에지를 한가지 형태(상승에지 또는 하강에지)만 이용해도 샘플링 대칭을 개선하여 샘플링 포인트들을 확인별할 수 있다. 또, 트랜잭션 위상들 사이의 최소 지연들을 멀티펌핑 시그널링 모드에서의 최대 버스 동작속도에 밀접하게 매칭하도록 변화시킬 수 있다.
Ⅱ. 아키텍쳐
도 1은 본 발명의 일 실시예에 따른 컴퓨터를 보여주는 블록도이다. 이 컴퓨터는 하나 이상의 프로세서들(110,112,114)를 포함한다. 각 프로세서는 또한 내부캐시(도시 안됨)를 포함한다.
각 프로세서는 (호스트버스나 전방버스로 알려진) 공통 프로세서 버스(117)에 연결된다. 도 2는 프로세서 버스(117)의 일례를 보여주는 도면이다. 도 2에 도시된 바와 같이, 프로세서버스(117)는 제어버스(202), 어드레스버스(204) 및 데이터버스(206)를 포함한다. 이 경우에 의하면, 데이터버스(206)는 64개의 데이터라인 D[63:0]를 포함한 많은 신호들을 포함한다. 어드레스버스(204) 역시 36개의 어드레스라인 A[35:0]를 포함한 많은 신호들을 포함한다. 프로세서버스(117)는 버스클록(BCLK)을 포함한다. 이 버스클록은 공통적이고 프로세서버스(117)의 제어버스(202)를 통해 모든 에이전트들에 제공된다. 제어버스(202) 역시 많은 신호들을 포함한다. 어드레스버스(204), 제어버스(202) 및 데이터버스(206)는 모두 다분기 양방향버스인 것이 바람직하다. "다분기"란 2개의 버스 에이전트들 사이에만 연결된 점대점 버스와는 반대로 3개 이상의 버스에이전트들에 버스들이 연결되어 있음을 의미한다.
프로세서버스(117)에 다른 여러 성분들을 인터페이스하기 위해 프로세서버스(117)에 칩셋이나 시스템 인터페이스(116)를 연결한다. 시스템 인터페이스(116)는 메인메모리 서브시스템(122)을 프로세서버스(117)에 인터페이스하기 위한 메모리 컨트롤러(118)를 포함한다. 메인메모리 서브시스템(122)에는 통상 하나 이상의 메모리카드와 제어회로가 있다. 시스템 인터페이스(116)는 또한 하나 이상의 I/O 브리지나 I/O 소자들을 프로세서버스(117)에 인터페이스하기 위한 I/O 컨트롤러(120)를 포함한다. 도 1에 도시된 컴퓨터에서, I/O 인터페이스(120)에 의해 I/O 브리지(124)가 프로세서버스(117)에 인터페이스된다. I/O 브리지(124)는 시스템 인터페이스(116)와 I/O 버스(130) 사이를 인터페이스하는 버스브리지로 기능한다. I/O 버스(130)에는 I/O 컨트롤러(132,134)와 같은 소자들이 하나 이상 연결될수 있다. I/O 버스(130)는 PCI(Peripheral Component Interconnect) 버스나 기타 형태의 I/O 버스일 수 있다.
Ⅲ. 에이전트
버스에이전트들은 프로세서버스(117)상에 트랜잭션들을 발생시켜 데이터와 시스템정보를 전송한다. 프로세서버스(117)에 연결되는 모든 소자가 버스에이전트이다. 버스에이전트들은 다음과 같이 여러가지로 분류될 수 있다.
1) 중앙 에이전트: 리셋, 하드웨어 구성과 초기화, 특별한 트랜잭션들과 중앙집중식 하드웨어 에러검출 및 조작들을 취급하고, 대표적인 것으로는 프로세서가 있다.
2) I/O 에이전트: I/O 포트 어드레스들을 이용해 I/O 소자들에 인터페이스하고, PCI 브리지와 같은 I/O 소자들에 사용되는 다른 버스에 대한 버스 브리지일 수 있음.
3) 메모리 에이전트: 메모리 컨트롤러(118)와 같은 메인메모리에 접속됨.
특수한 버스에이전트는 트랜잭션에서 다음과 같은 한가지 이상의 역할을 가질 수 있다.
1) 요구 에이전트: 트랜잭션을 일으키는 버스에이전트.
2) 어드레스된 에이전트: 트랜잭션에 의해 어드레스된 에이전트로서, 타겟 에이전트라고도 함. 특정 메모리나 I/O 어드레스를 인식하는 메모리나 I/O 에이전트에 메모리나 I/O 트랜잭션이 어드레스된다. 지연된 응답 트랜잭션은 원래의 트랜잭션을 일으키는 에이전트에 어드레스된다.
3) 스누핑 에이전트: 캐시일관성을 유지하기 위해 버스 트랜잭션을 관찰(스누프)하는 캐시버스 에이전트.
4) 응답 에이전트: 트랜잭션에 대한 응답을 주는 에이전트(통상 어드레스된 에이전트임). 일례에 따르면, 응답에이전트는 응답 스트로브 RS[2:0]를 이용해 제어버스에서의 응답을 구동한다.
Ⅳ. 동작, 트랜잭션 및 위상
본 발명에 따르면, 프로세서버스(117)상의 버스 활동은 계층적으로 동작, 트랜잭션 및 위상으로 조직된다.
동작은 버스(117)상에서는 원자적이 아닐지 몰라도 소프트웨어에는 원자적으로 나타나는(즉, 더이상 나눌 수 없는 것으로 나타나거나 한번에 일어나는 것으로 나타날 수 있는) 버스 절차이다. 동작은 하나의 버스 트랜잭션으로 이루어질 수도 있지만, 때로는 다중버스 트랜잭션, 또는 데이터전송이 다중인 싱글 트랜잭션을 포함할 수도 있다. 그 예로는, 리드동작, 라이트동작, 로크된 리드-변경-라이트 동작 및 지연동작이 있다.
트랜잭션은 하나의 버스요구에 관련된 버스 동작 세트이다. 트랜잭션은 버스조정, 및 (어드레스가 구동되고 있음을 표시하는) ADS# 신호와 트랜잭션 어드레스의 표명으로 시작된다. 트랜잭션이 구동되면 데이터가 전송되거나, 변화된 캐시상태를 문의하거나, 시스템에 정보를 제공한다.
위상은 특정 형태의 정보를 전송하기 위한 특정 신호세트를 이용한다. 이들 위상으로는, 조정, 요구, 스누프, 응답 및 데이터가 있을 수 있다. 모든 트랜잭션들이 모두 위상을 포함하지는 않으며, 어떤 위상들은 겹칠 수도 있다. 조정위상은 버스 에이전트들이 누가 다음 버스 소유자인지를 결정하는 위상이다. (에이전트는 트랜잭션을 생성하기 전에 버스를 소유해야만 한다). 요구위상은 트랜잭션을 버스로 보내는 위상이다. 스누프위상은 캐시일관성이 강요되는 위상이다. 응답위상은 어드레스된 타겟 에이전트가 버스로 트랜잭션 응답을 출력하는 위상이다. 데이터 위상에서는, 요구하거나 응답하거나 스누핑하는 에이전트가 트랜잭션 데이터를 구동하거나 받아들인다.
프로세서버스(117)를 통해 전송되는 4개의 제어신호들로는 버스클록 BCLK[1:0], 초기화신호 INIT#, 리세트 신호 RESET#가 있다. 버스클록 BCLK[1:0]는 차동 버스클록이고 클록칩이나 클록회로에 의해 생성될 수 있다. 두개의 버스클록신호 BCLK[1:0]는 논리적으로 동일하고 두개의 별개의 신호로서 물리적으로 전송되어 타이밍스큐를 줄인다. 본 실시예에 따르면, 모든 에이전트들이 그들의 공통클록 출력들을 구동하고 버스클록 상승에지에서 그들의 공통클록 입력들을 래치한다. 각각의 프로세서는 버스클록 주파수를 체배하거나 분할하여 버스클록 BCLK 신호로부터의 자체 내부클록을 구동한다.
본 실시예에 따르면, RESET# 입력신호에 의해 모든 버스 에이전트들이 공지된 상태로 리셋되고 내부캐시가 무효화된다. 변형되거나 오염된 캐시라인 컨텐츠들은 없어진다. RESET#가 없어진 뒤, 각각의 프로세서는 구성모드동안 지정된 파워온 리셋 벡터(power on reset vector)의 실행을 시작한다.
본 실시예에 따르면, INT# 입력신호에 의해 모든 프로세서들은 내부 캐시나부동소수점 레지스터에 영향을 주지않고 리셋된다. 각각의 프로세서는 구성모드동안에 지정된 파워온 리셋벡터(power on reset vector)의 실행을 시작한다.
도 3은 본 발명에 따른 두가지 트랜잭션을 위한 버스 트랜잭션 관계들을 보여주는 타이밍도이다. 버스클록(BCLK[1:0])의 사이클(1,2,3,4...,17)이 상단에 도시되어 있다. 숫자 1로 표시된 사각형은 트랜잭션 1의 위상들을 나타내고, 숫자 2로 표시된 사각형은 트랜잭션 2의 위상들을 나타낸다. 도 3에서 알 수 있듯이, 트랜잭선들은 파이프라인 형태로 제공된다. 예컨대, 트랜잭션 1의 경우, 사이클 1, 2에서는 조정이 일어나고, 사이클 3, 4에서는 요구가 발생하며, 사이클 6, 7에서는 스누프가 발생하고, 사이클 13, 14에서는 응답 및 데이터의 전송이 발생한다. 따라서, 응답 및 데이터의 전송은 원래의 요구위상 이후 여러번의 버스클록 사이클들을 발생시킬 수 있다. 또, 서로 다른 트랜잭션들의 위상들 사이가 겹칠 수도 있다. 예를 들어, 트랜잭션 2의 조정위상은 트랜잭션 1의 요구위상과 거의 동시에 발생한다.
Ⅴ. 시그널링 모드
본 발명에 따르면, 프로세서버스(117)는 조정할 수 있으며 두개의 시그널링 모드를 지원한다. 첫번째는 모든 에이전트들 사이에 연속 제공되는 공통 버스클록(BCLK#)에 대해 모든 시그널동작과 샘플링이나 래치 포인트들이 발생하는 공통클록 시그널링 모드이다. 버스클록은 머더보드에 배치된 클록칩이나 클록회로에 의해 생성되고, 컴퓨터내의 모든 프로세서나 에이전트에 공통적이다. 공통 버스클록에 대한 시그널 클로킹을 공통클록(1X) 시그널링 모드라 한다. 본 발명에 따라, 제어버스를 통해 제공된 여러 제어신호들은 공통클록(1X) 시그널링 모드를 이용해 전송된다.
두번째 시그널링 모드는 공통클록 시그널링 모드에서 지원되는 전송속도의 수배의 정보전송속도가 가능한 멀티펌핑 시그널링 모드이다. 따라서, 본 발명에 따르면, 멀티펌핑 시그널링 모드는 공통(즉, 시스템) 버스클록 주파수의 수배의 속도로 에이전트들 사이의 프로세서버스(117)를 통한 정보전송을 지원할 수 있다. 예컨대, 공통클록 주파수의 전송속도의 두배(2X)로 정보(예; 데이터, 어드레스, 기타 정보)를 전송할 수 있는 더블펌핑 시그널링 모드, 또는 버스클록 주파수의 4배(4X)로 정보전송할 수 있는 쿼드펌핑 시그널링 모드를 제공할 수 있다. 공통버스클록보다 큰 속도나 주파수로 정보전송을 촉진하기 위해, 멀티펌핑 정보를 캡처하거나 래치하기 위한 기준으로서 수신기에서 사용되는 타이밍 "스트로브"로 알려진 컴패니온 신호가 구동에이전트에 의해 생성되거나 제공된다.
즉, "표명"이란 신호가 활성값으로 구동(즉,활동 로우신호를 위한 제로값까지 구동)되는 것을 의미하고, "비활성"이란 신호가 비활성값으로 구동됨을 의미한다. 특수한 신호들이 구동되거나 샘플링될 때를 표시하기 위해 이하 설명되는 어떤 타이밍도에서는 구형, 원형 및 삼각형 심볼들을 사용한다. 구형심볼은 신호가 클록사이클에서 구동(표명, 개시)됨을 표시한다. 원형 심볼은 신호가 클록사이클에서 샘플링(관찰, 래치)됨을 표시한다. 공통클록(1X) 시그널링 모드에서 버스클록(BCLK)의 상승(또는 하강) 에지를 기초로한 샘플링 포인트를 보여주는데는 통상 원형 심볼들을 사용한다. 삼각형 심볼은 "스트로브"라 불리우는 컴패니온 신호의 상승에지나 하강에지를 기초로 신호가 샘플링되거나 캡쳐됨을 표시한다. 스트로브는 멀티펌핑 모드에서 프로세서버스를 통해 정보(예; 데이터, 어드레스, 기타 정보)의 전송중에만 활동되는 것이 바람직할 수 있다.
A. 공통클록 시그널링 모드
공통클록(1X) 시그널링 모드에 따르면, 프로세서버스(117)상의 모든 에이전트들은 그들의 활성출력들을 구동시키고 필요한 입력들을 샘플링할것을 필요로 한다. 이 경우, 모든입력은 버스클록의 상승에지상의 유효 샘플링간격중에 샘플링되어야 하고 그 결과는 다음 버스클록 에지가 시작되자마자 즉각 버스(117)로 출력되어야 한다. 이에 따라, 수신기에서의 부품간 통신을 위한 하나의 완전한 버스클록 사이클과 적어도 하나의 완전한 버스클록 사이클이 신호로 해석되고 응답을 계산 및 출력할 수 있다. 그 결과, 하나 이상의 버스클록 사이클에서 에이전트가 데이타를 프로세서버스로 출력한 뒤, 다른 에이전트가 프로세서버스(117)를 구동할 수 있기 전에 하나의 버스클록 사이클이 정지된다(즉, 데드사이클이나 비활성사이클이 생긴다).
도 4는 본 발명에 따른 공통클록(1X) 시그널링 모드의 동작례를 보여주는 타이밍도이다. 여기서는 신호들이 프로세서버스(117)에 나타나는 것같이 도시되어 있다. 4 사이클의 버스클록(BCLK)이 보인다. 또, A#, B#를 포함한 두개의 다른 신호들이 도시되어 있는바, 이들 신호는 어떤 형태의 신호라도 된다. 예컨대, A#는 제1 에이전트로부터의 제1 제어신호일 수 있고, B#는 제2 에이전트로부터의 제2 신호일 수 있다. 이들 제1, 제2 신호들은 핸드셰이크나 버스프로토콜의 일부로 제공될 수도 있다.
도 1에 도시된 바와 같이, A# 신호는 클록사이클 1의 상승에지에서 구동(또는 표명)되고(A#에 사각형으로 표시되어 있음), 클록사이클 2의 초기의 상승에지에서는 수신기에 래치된다(A#에 원으로 표시되어 있음). 따라서, 클록사이클 1은 신호 전파용으로 제공된다. A#은 사이클 1의 초기에 표명되지만, 사이클 2가 시작할 때까지는 버스에서 관찰되지 않는다. 다음, 신호를 해석하기 위한 논리적 지연과 수신기를 위한 버스클록 사이클 2의 기간동안 클록사이클이 정지되거나 비활성된다. 다음, 수신기는 B#에 사각형으로 표시된 것 같이 버스클록 사이클 3이 시작할 때 B# 신호를 구동하거나 표명하고, 이것은 B#에 원으로 표시된 것 같이 사이클 4의 초기에 다른 에이전트들에 의해 관찰 및 캡쳐된다.
본 발명에 따르면, 프로세서는 (펜티엄 프로세서에 사용되는 32바이트 캐시라인 대신) 64바이트 캐시라인을 포함한다. 따라서, 공통클록(1X) 시그널링모드와 64 데이터버스라인들을 이용해 데이터를 전송하면, 64 바이트(1 캐시라인)의 데이터가 8개의 버스클록 사이클로 구동되거나 전송될 수 있다. 그러나, 많은 경우, 더 빠른 데이터 전송속도나 더 큰 대역폭을 제공하는 것이 바람직할 수도 있다.
B. 멀티펌핑 시그널링 모드
많은 경우, 프로세서버스(117)의 길이나 (버스를 통한 신호전파의 지연을 포함한) 전기적 제한때문에 프로세서버스의 주파수 증가가 억제될 수 있다. 따라서, 본 발명에 따르면, 프로세서버스 클록주파수를 증가시키기 보다는, 멀티펌핑 시그널링 프로토콜에 의해 버스클록(BCLK) 주파수의 수배로 적당한 버스신호그룹(예,어드레스버스나 데이터버스)을 동작시켜 (공통클록 시그널링 모드보다) 데이터 전송속도를 증가시킨다.
1. 쿼드펌핑 시그널링 모드의 예
쿼드펌핑 시그널링 모드에서는, 버스클록(BCLK) 주파수의 4배(4X)로 적당한 버스신호그룹이 동작된다. 즉, 쿼드펌핑 시그널링 모드에서는 (공통클록이나 1X 시그널링 모드에서의 1 요소의 정보를 구동할 시간인) 1회의 버스사이클중에 프로세서버스(117)로 4 요소의 정보가 출력된다.
도 5는 본 발명에 따른 쿼드펌핑 시그널링 모드의 일례를 보여주는 타이밍도이다. 쿼드펌핑 시그널링 모드는 어떤 형태의 신호에도 사용될 수 있지만, 예로 든 경우에 따른 데이터를 전송하는데 쿼드펌핑 시그널링 프로토콜을 사용한다. 2회의 클록사이클과 세번째 클록사이클의 일부가 도 5에 도시되어 있다. 프로세서버스(117)를 통한 가장 나쁜 경우의 주행시간(또는 신호전파시간)은 제1 정보요소가 수신기(수신 에이전트)에 래치되기도 전에 구동기(즉 프로세서버스로 정보를 출력하는 에이전트)에서 프로세서버스(117)로 제2 정보요소가 출력될 수도 있는 것이다.
본 실시예에 따르면, 구동기(또는 구동 에이전트)가 상승에지에서, 그리고 버스클록(BCLK) 사이클의 25%, 50%, 75% 포인트들에서 새로운 정보요소를 전송하거나 출력한다.
수신기는 또한 데이터를 샘플링하거나 캡쳐해야 할 때를 표시하는 데이터 스트로브신호로 알려진 컴패니온 타이밍신호를 전송한다. 이 스트로브 신호는 멀티펌핑 시그널링 모드를 이용해 정보가 전송되었을 때만 전송되거나 구동(활동)하는 것이 바람직하다.
데이터와 스트로브 신호들은 동일한 드라이버나 소스에서 생성되기 때문에, 동일한 경로를 갖는다. 그 결과, 스트로브 신호와 데이터신호들은 같은 경로를 가져야 하고 대략 동일하게 지연되어야 한다. 따라서, 스트로브와 데이터를 모두 전송하는 드라이버나 소스에서 얻을 수 있는 장점은, 데이터신호와 스트로브신호가 버스(117)상의 각 에이전트에 동일 위상(또는 동기적으로)으로 도달한다는데 있다. 그러므로, 데이터와 타이밍 스트로브신호를 둘다 전송하는 이와 같은 드라이버 기술을 소스 동기전송이라 할 수 있다. 쿼드펌핑 시그널링 모드에서는, 4개 데이터요소 각각에 대해 하나씩의 매 버스클록 사이클마다 정보 샘플링이나 캡처 포인트를 확인하는 4개의 데이터 스트로브(예, 4개의 타이밍 스트로브 에지)가 있어야 한다. 불행히도, 비교적 높은 주파수로 스트로브 신호를 생성하는데는 문제가 있다. 고속의 클록속도에서는, 상승 에지속도와 하강 에지속도 사이의 차이가 상당할 수 있다. 또, 듀티사이클이 50%인 클록신호나 스트로브신호를 제공하기가 어려울 수도 있다. 그 결과, 몇몇 높은 클록주파수에서는, 스트로브신호의 상승에지와 하강에지 모두 샘플링 포인트들을 식별하는데 사용되어서는 안되는데, 이는 이로인해 비대칭이 생성되거나 어느정도의 타이밍 불확실성이 유도되기 때문이다. 오히려, 스트로브의 두개의 에지들중 하나만 이용해(즉, 쿼드펌핑 데이터를 샘플링하거나 캡처링하기 위해 스트로브 신호들의 상승에지나 하강에지만 이용해) 좀더 대칭적이거나 균일한 스트로브 타이밍이나 샘플링 간격들을 얻는 것이 유리할 수 있다.
스트로브의 이들 에지들중 하나만 이용하면, 버스클록 주파수의 몇배의 클록주파수를 얻을 수 있다. 쿼드펌핑 데이터(버스클록 사이클마다 4개의 데이터 요소들)의 경우, 하나의 에지만을 타이밍에 사용하면 스트로브 신호주파수가 버스클록 주파수의 4배(4X)이어야 한다.
불행히도, 프로세서 클록주파수가 예를 들어 100㎒이면, 스트로브 신호주파수는 400㎒이어야 한다. 그러나, 버스 클록주파수의 4배의 스트로브 신호주파수는 전송된 데이터나 정보로부터의 지연에 부닥칠 수 있고, 이는 수신기에서의 데이터와 스트로브의 정렬에 영향을 줄 수 있다. 전송된 스트로브신호와 데이터 사이에 이와 같은 오정렬이 생기면, 수신기가 불량하거나 부정확한 데이터를 캡쳐한다. 또, 이렇게 높은 주파수(예 400㎒)에서는 신호감쇄도 상당히 높을 수 있다.
따라서, 본 발명에 의하면, 버스 클록주파수의 4배(4X)의 스트로브 주파수를 이용하지 않고 버스 클록사이클당 4개의 스트로브들을 제공하도록 다중 데이터 스트로브신호들을 사용한다. 본 발명에 의하면, 버스클록 주파수마다 2개의 데이터 스트로브신호(DSTBp#, SDTBn#)들을 두번씩 제공한다. 따라서, 버스클록 주파수가 100㎒이면, 두개의 데이터 스트로브신호들은 각각 드라이버(또는 구동에이전트)에 의해 활성화되거나 생성될 때 200㎒의 주파수를 갖는다. 한편, 버스클록 사이클마다 각각 하나의 스트로브나 하강 에지를 제공하는 4개의 데이터 스트로브신호들을 사용할 수도 있다. 이들 신호들은 각각 버스클록과 동일한 주파수를 갖는다.
도 5에 의하면, 드라이버는 버스클록 사이클(1)의 상승에지에서 그리고 25%, 50%, 75% 지점에서 새로운 정보나 데이터요소를 전송하거나 구동한다. 이들 데이터요소를 본 실시예에서는 D1, D2, D3, D4라고 한다. 본 실시예에서는 또한 DSTBp#, DSTBn#를 포함한 2개의 데이터 스트로브신호들을 사용한다. 이에 따르면, 이들 두개의 데이터 스트로브신호들은 서로 위상이 어긋나도록(스태거 상태나 오프셋 배열로) 생성된다. 이때문에, 스트로브신호들중 하나는 홀수 데이터요소(예, D1, D3, D5,...)의 샘플링 포인트들을 식별할 수 있고, 나머지 스트로브신호는 짝수 데이터신호(예, D2, D4, D6,..)에 사용될 수 있다.
도 5의 실시예에는 2개의 스트로브신호만 도시되어 있지만, 소스 동기전송 데이터의 샘플링 포인트들을 식별하는데는 몇개의 스트로브신호라도 사용할 수 있다. 전술한 바와 같이, 스트로브 신호 주파수를 낮추면서 스트로브 신호들의 두개의 에지중 하나만 이용해 샘플링 포인트들(또는 스트로브)을 확인할 수 있도록 다수의 스트로브신호들을 제공하는 것이 특히 유리할 수 있다. 예컨대, 쿼드펌핑 대신 6X 펌핑 프로토콜을 사용하면, 3개의 스트로브 신호들을 사용할 수 있고, 이들 3개 스트로브 신호들은 모두 스트로브 1은 데이터요소 D1, D4용으로, 스트로브 2는 데이터요소 D2, D5용으로, 스트로브 3은 데이터요소 D3, D6용으로 사용할 수 있도록 비슷하게 오프셋되거나 스태거될 수 있다.
본 실시예에 따르면, 스트로브 신호들의 두개의 에지중 하나만 이용해 데이터 샘플링 포인트들을 식별하거나 동기화한다. 이 경우, 두개의 데이터 스트로브 신호들중 하강 에지들만을 이용해 정보나 데이터를 샘플링하기 위한 포인트들을 확인한다. 데이터 스트로브(또는 데이터 스트로브신호의 하강에지)는 4개의 정보나 데이터요소 각각에 중심이 일치한다. 따라서, 데이터 스트로브신호들의 하강 에지(또는 스트로브)는 버스클록(BCLK) 사이클의 12.5%, 37.5%, 62.5%, 87.5%에서 일어난다. 그러므로, 두개의 스트로브 신호들은 등간격 스트로브나 하강에지들을 제공한다.
도 5에 도시된 바와 같이, DRDY#는 버스클록 사이클 1의 초기에 버스(117)로 출력된다(사각형으로 표시됨). DRDY#는 유효데이터가 프로세서버스(117)에 있고 이를 샘플하거나 캡쳐해야만 함을 의미한다. 첫번째 데이터요소(D1)는 버스클록 사이클 1의 상승에지에서 프로세서버스(117)로 드라이버에 의해 출력된다(D#(@driver)에 첫번째 사각형으로 표시). 다음, DSTBp(@driver)에 첫번째 사각형으로 표시된 것처럼, 첫번째 버스클록 사이클의 12.5% 지점에서 드라이버에 의해 첫번째 데이터 스트로브신호(DSTBp#)가 활성화된다. 따라서, 첫번째 데이터요소(D1)의 스트로브(또는 하강에지)가 첫번째 데이터요소의 중앙에 위치한다. 스트로브신호는 일단 활동하면, 데이터가 버스로 출력될 때까지 계속 활동한다.
또, D#(@driver)에 두번째 사각형으로 표시한 것처럼, 버스클록 사이클 1의 25% 지점에서 두번째 데이터요소가 드라이버에 의해 구동된다. 두번째 데이터 스트로브신호(DSTBn#)는 버스클록 사이클 1의 37.5% 지점에서 활성화되고 두번째 데이터요소(D2) 중앙에 위치한다.
마찬가지로, 세번째, 네번째 데이터요소들(D3,D4)은 버스클록 사이클 1의 50%, 75% 지점에서 구동된다. 62.5% 지점에서는 (DSTBp# 스트로브신호에 의해), 87.5% 지점에서는 (DSTBn# 스트로브 신호에 의해) 대응 데이터 스트로브들(데이터 스트로브신호의 하강 에지들)이 드라이버에 의해 구동되거나 제공된다. 버스클록주파수의 두배의 주파수로 데이터 스트로브신호들을 제공하기 때문에, 1/2 버스클록 사이클마다 각각의 데이터 스트로브신호가 스트로브나 하강에지를 제공한다. 따라서, DSTBp# 스트로브 신호는 버스클록 사이클의 12.5%, 62.5% 지점에서 하강에지나 스트로브들을 제공하고, DSTBp# 스트로브 신호는 버스클록 사이클의 37.5%, 87.5% 지점에서 하강에지나 스트로브들을 제공한다. 그러므로, 두개의 스트로브 신호들(DSTBp#, DSTBn#)은 서로 스태거되거나 위상이 어긋남을 알 수 있다. 이때문에, 교호적인 스트로브신호들이 버스클록 사이클의 1/4 주기마다(2개의 데이터 스트로브신호들 사이에) 하강에지(또는 스트로브)를 제공할 수 있다. 이렇게 되면, 버스클록 사이클마다 4개의 스트로브나 하강에지가 제공되어, 각 스트로브의 주파수를 낮추면서도 버스클록 사이클마다 4개의 데이터요소를 위한 샘플링이나 캡쳐링 포인트들을 식별할 수 있다. 또, 각각의 데이터 스트로브신호내의 스트로브에 같은 에지(본 실시예에서는 하강에지)를 사용하기 때문에 타이밍과 회로가 단순화된다.
본 실시예에 따르면, 올바른 동작을 확보하기 위해, 구동에이전트로부터 모든 수신기로의 정보전달의 지연이 1 버스클록에서 입력 래치셋업 시간을 뺀 것보다 작거나 동일해야 한다. 이렇게 하면, 수신기가 다음 위상동안 버스를 소유하고 있을 때 후속 데이터위상을 위한 데이터라인상의 경합을 피할 수 있다.
도 5에는 또한 수신기에서의 데이터 캡쳐링이 도시되어 있다. 드라이버에 의해 신호(데이터와 데이터 스트로브)가 구동된 뒤, 이들 신호는 프로세서버스(117)를 따라 전파되어 타겟인 수신기에 도달한다. 첫번째 데이터요소가 D#(@receiver) 신호로 표시된 것처럼 수신기에 수신된다. 첫번째 데이터요소(D1)는 첫번째 스트로브에서 샘플링되거나 캡쳐되고, 첫번째 스트로브는 DSTBp#(@receiver)의 첫번째 하강에지이다. DSTBp#(@receiver)의 첫번째 삼각형은 첫번째 데이터요소를 샘플링하거나 캡처링하기 위한 스트로브 지점을 식별하고, 두번째 삼각형은 수신기에서의 세번째 데이터요소를 샘플링하기 위한 지점인 스트로브를 확인한다. 마찬가지로, 두번째 스트로브신호(DSTBn#(@receiver))의 두개의 삼각형들은 두번째 및 네번째 데이터요소들(D2,D4)을 샘플링하거나 캡처링하기 위한 수신기의 지점들을 확인한다.
도 5에 도시된 바와 같이, 클록 사이클 2의 초기의 상승 에지 이후와 클록 사이클 2의 12.5% 에서 첫번째 데이터요소(D1)을 수신기에서 샘플링하거나 캡처링(스트로브)할 수 있다. 본 명세서에서 사용된 "샘플링", "캡처링", "래칭"은 거의 같은 의미로 사용된다. 그러나, 모든 데이터요소의 데이터는 버스클록 사이클 3의 상승에지가 올때까지는 수신기에 래치되지 않는다. 따라서, 데이터요소(D1)가 버스클록 사이클 2의 초기 부근에서 수신되어 캡처링되지만, 버스클록 사이클 3이 시작될 때까지는 모든 데이터를 얻을 수는 없다. 수신 에이전트는 8개 데이터요소를 저장하기에 충분한 FIFO 버퍼를 포함하는 것이 바람직하다. 8개 데이터요소 FIFO는 1회 데이터전송을 위한 4개 요소들과 그다음 전송을 위한 다음 4개 요소들을 저장할만큼 충분히 크다. 이때문에 그 전 4개 데이터요소를 FIFO에서 수신기로 래치하면서 새로운 4개 데이터요소를 수신하고 캡처할 수 있다. 순수 효과는 수신기 내부에 래칭된 제1 신호군에 대한 지연효과로 공통클록 시그널링 모드의 대역폭의 4배이다.
또, 본 실시예에 따르면, 두개의 데이터 스트로브신호들(DSTBp#, DSTBn#) 각각을 다중 카피하는데 여러 라인들을 이용한다. 예컨대, 다음 표에 표시한 것처럼 4개의 DSTBn# 신호와 4개의 DSTBp# 신호가 있다.
데이터 스트로브의 예
데이터신호 스트로브
D[14:0]# DSTBp0#, DSTBn0#
D[31:16]# DSTBp1#, DSTBn1#
D[47:32]# DSTBp2#, DSTBn2#
D[63:48]# DSTBp3#, DSTBn3#
4개의 DSTBp# 신호들은 4개의 DSTBn# 신호들과 마찬가지로 논리적으로 동일하지만, 데이터 스트로브신호들 각각은 요구신호들의 서브셋(즉, 데이터라인들의 서브셋)과 함께 물리적으로 전송되어 데이터와 데이터 스트로브신호들 사이의 타이밍스큐나 오정렬을 감소시킨다.
도 8은 본 발명에 따른 에이전트들 사이의 정보전송장치의 블록도이다. 첫번째 버스에이전트(802)가 두번째 버스에이전트(832)에 연결된다. 첫번째 버스에이전트(802)는 첫번째 양방향 데이터 스트로브 신호라인(820)을 통해 첫번째 데이터 스트로브신호(예, DSTBp#)를 생성/수신하기 위한 데이터 스트로브 발생기1/수신기1, 및 두번째 양방향 데이터 스트로브 신호라인(822)을 통해 두번째 데이터 스트로브신호(예, DSTBn#)를 생성/수신하기 위한 데이터 스트로브 발생기2/수신기2를 포함한다. 버스에이전트(802)는 데이터버스나 데이터 신호라인(826)에 데이터신호들을 전송하기 위한 송신회로와 데이터 신호라인(826)을 통해 데이터신호들을 수신하기 위한 수신회로를 포함한 버스송수신기(806)를 더 구비한다. 두번째 버스에이전트(832)도 마찬가지로 데이터 스트로브 신호라인들(820,822)에 두개의데이터 스트로브신호들을 각각 생성하기 위한 데이터 스트로브발생기(1)와 데이터 스트로브발생기(2)를 포함한다. 공통(또는 시스템) 버스클록 발생기(810)는 버스에이전트들(802,832)에 공통 또는 시스템 버스클록을 제공한다.
2. 어드레스 버스의 속도를 데이터버스에 매칭
본 발명에 따르면, 캐시라인의 사이즈가 64바이트까지 증가된다. (어떤 펜티엄 프로세서의 캐시라인 사이즈는 32바이트이다). 따라서, 쿼드펌핑 시그널링 프로토콜과 64개 데이터라인을 갖는 데이터 버스폭을 이용하면, 캐시라인(또는 64바이트)을 두개의 버스클록 사이클로 전송할 수 있는바: 64바이트=(2사이클)x(4 펌프/사이클)(8 바이트/펌프)이다.
그러나, 어떤 펜티엄 프로세서에서는, (어드레스를 포함한) 요구가 3개 버스클록 사이클로 전송된다. 이런 펜티엄 프로세서에 대한 요구위상의 3개 버스클록 시이클은 다음과 같다.
사이클 1: 하위위상 a - 어드레스(어드레스 버스에서 제공), 및 요청 형태(예, 리드, 라이트).
사이클 2: 하위위상 b - 바이트 인에이블, 길이 등의 상세 요청내역(어드레스 라인이나 어드레스 버스를 통해 제공).
사이클 3: 다른 에이전트가 버스를 구동할 수 있도록 버스상의 신호들을 가라앉히는 데드사이클이나 소요사이클.
따라서, 본 실시예에 따르면, 2회의 버스클록 사이클내에 데이터버스를 통해 캐시라인을 전송할 수 있다. 그러나, 어떤 펜티엄 프로세서들에서는, 어드레스와요구 타이밍은 요구문을 전송하는데 3회의 버스클록 사이클들을 필요로 한다. 그러므로, 어떤 펜티엄 프로세서들에서는, 전술한 바와 같은 개선된 쿼드펌핑 데이터버스의 속도에 어드레스 버스타이밍이나 대역폭이 매칭되지 않는다(도 5 참조). 더 가치있는 리소스들중 하나는 데이터버스 폭과 데이터버스 대역폭이다. 따라서, 본 실시예에 따르면, 어드레스버스 대역폭이 아닌 데이터버스 대역폭이 프로세서버스를 억제하거나 제한하는 것이 바람직하다. 그러므로, 어드레스버스가 프로세서버스를 억제하는 것을 방지하려면, 데이터버스의 대역폭이나 속도에 매칭하도록 (본 실시예에서는 데이터버스상의 하나의 캐시라인의 전송을 위해) 어드레스를 조정하고 어드레스버스상의 타이밍을 요구하는 것이 바람직하다.
따라서, 본 발명에 따르면, 어드레스버스를 통해 제공된 요구 위상의 타이밍과 속도가 데이터버스의 전반적인 속도와 매칭하도록 조정했다. 데드사이클이나 소요사이클은 유지하는 것이 좋다. 그러므로, 본 발명에서는, 어드레스버스를 더블펌핑하여 1회의 버스클록 사이클에 2개의 정보요소(요구문의 하위위상 a와 하위위상 b)를 제공했다.
3. 더블펌핑 시그널링 모드의 예
일반적으로, 본 발명에 따르면, 더블펌핑 시그널링 모드에서는 버스클록(BCLK) 주파수의 두배(2X)로 적당한 버스 시그널링 그룹이 동작한다. 도 6은 본 발명에 따른 더블펌핑 시그널링 모드의 일례를 보여주는 타이밍도이다. 어떤 신호도 더블펌핑 가능하지만, 본 발명에서는 어드레스 버스의 더블펌핑을 예로 들었다.
도 6에 따르면, ADS# 신호가 요구위상의 초기에 로우로 간다. 더블펌핑 시그널링 모드에서는, 공통클록 시그널링 모드를 이용해 하나의 요소를 구동할 때(즉, 하나의 버스클록 사이클동안) 두개의 정보요소들이 버스로 보내진다. 주행시간(또는 프로세서버스(117)상의 신호전파시간)으로 인해, 첫번째 요소가 수신기에 래칭되기 전에 드라이버에서 두번째 신호군이나 정보요소가 구동될 수 있다. 본 실시예에서, 드라이버는 버스클록 사이클의 상승에지와 50% 지점에서 새로운 정보요소를 전송한다.
도 6에 도시된 바와 같이, 트랜잭션 어드레스를 제공하는 요구(Aa)의 하위위상 a는 버스클록 사이클 1의 초기의 하강에지에서 시작하는 버스클록 사이클 1의 처음 절반으로 보내진다. 트랜잭션을 위한 몇몇 보조 명세들을 제공하는 요구(Ab)의 하위위상 b는 버스클록 사이클 1의 50% 지점에서 시작하는 버스클록 사이클 1의 두번째 절반으로 보내진다. 이들 두개의 정보요소들은 도 6에 A#(@driver) 라인에 Aa, Ab용으로 두개의 사각형으로 표시되어 있다. Aa는 어드레스라인을 통해 제공되는 요구의 하위위상 a를, Ab는 어드레스라인을 통해 제공되는 요구의 하위위상 b를 가르킨다. 따라서, 두개의 정보요소들(Aa,Ab)이 1회의 버스클록 사이클동안 전송되기 때문에 어드레스버스는 더블펌핑되는 셈이다.
또, 요구에 대한 정보가 더블펌핑 시그널링 모드를 이용해 버스클록 사이클마다 2개의 정보요소들이 전송되기 때문에, 이 정보는 소스 동기전송으로서 보내지는 것이 바람직하다. 그러므로, 두개의 정보요소들 외에, 드라이버는 어드레스 스트로브신호를 활성화시켜 두개의 어드레스 스트로브들을 매 버스사이클마다 제공한다. 어드레스 스트로브들은 어드레스 버스를 통해 전송된 두개의 정보요소(Aa,Ab)를 샘플링하기 위한 포인트들을 제공하거나 식별한다.
본 발명에 따르면, 버스클록(BCLK)과 같은 주파수를 갖는 어드레스 스트로브신호(ADSTB#)를 사용한다. 그러나, 1회의 버스클록 사이클동안 2개의 스트로브들을 제공하기 위해, 어드레스버스를 통해 제공된 2개의 정보요소들의 샘플링 포인트들을 식별하는데 어드레스 스트로브신호의 하강에지와 상승에지를 모두 스트로브로 이용한다. 도 6에 도시된 바와 같이, 버스클록 사이클 1의 25% 지점에서 드라이버에 의해 어드레스 스트로브신호(ADSTB#)가 활성화되고, 이 지점은 정보요소 1(Aa)의 중심이다. 본 발명에 따르면, 첫번째 정보요소(Aa 또는 요구의 하위위상 a)의 어드레스 스트로브는 ADSTB# 신호의 하강에지에 제공되고(버스클록 사이클 1의 25% 지점에서 구동되고), 두번째 정보요소(Ab 또는 요구의 하위위상 b)의 어드레스 스트로브는 ADSTB# 신호의 상승에지에 제공된다(버스클록 사이클 1의 75% 지점에서 구동된다).
어드레스 스트로브의 주파수가 버스클록과 같아도, 버스클록 신호는 적절한 때 상승에지와 하강에지를 제공하지 않기때문에 버스클록을 정보요소의 스트로브신호로 사용해서는 안된다. 또, (소스동기전달중에만 활성화되는 스트로브신호와 달리) 버스클록신호는 항상 활성화되어 있다. 어드레스 스트로브신호가 버스클록의 위상이나 상태와 무관하게 활성화(턴언)되고 비활성화(턴오프)될 수 있으므로, 두개의 정보요소들을 위한 스트로브나 샘플링 포인트드을 제공하는데 어드레스 스트로브신호를 이용한다. 정보와 동일한 소스로부터 스트로브가 구동되기 때문에, 스트로브의 지연이 정보의 지연과 매칭되어, 1비트 이상이 동시에 와이어상에 있을 수 있다.
정보요소들(Aa,Ab)과 어드레스 스트로브신호는 프로세서버스(117)를 따라 전파되어 버스클록 사이클 2의 초기에 수신기에 도달한다. 도 6에 도시된 바와 같이, 첫번째 정보요소(Aa)는 ADSTB#(@receiver) 신호의 하강에지에서 캡처링되거나 샘플링되고, 두번째 정보요소는 ADSTB#(@receiver) 신호의 상승에지에서 캡처링되거나 샘플링되는바, 이 상태가 ADSTB#(@receiver) 신호에 두개의 삼각형으로 표시되어 있다. 따라서, 데이터가 유효할 때(그리고 캡처링되어야 할 때) 드라이버로부터의 정보를 기초로 수신기가 데이터나 정보를 결정적으로 캡처링한다.
본 실시예에 따르면, 구동에이전트로부터 모든 수신기로의 데이터 전송 지연은 1 버스클록 사이클에서 입력래치 셋업시간을 뺀 값보다 작거나 같아야 한다. 이것은 수신기가 다음 위상의 소유자일 경우 두번째나 후속 위상을 위한 다른 라인과 어드레스 라인들(또는 어드레스 버스)상의 경합을 피하게 된다. 순수 효과는 부품이나 수신기 내부에 래칭되는 첫번째 신호군에 대한 지연 추가 효과를 갖는 공통클록 시그널링 모드의 대역폭의 두배이다.
본 발명에 따르면, 수신기는 요구 위상중에 어드레스 버스를 통해 전송되는 4개의 정보요소를 저장하기 위해 4개의 FIFO 버퍼를 구비한다. 이렇게 되면 하나의 요구문의 하위 위상들 a, b로부터의 요소들을 수신하여 FIFO에서 캡처링할 수 있으면서, 그와 동시에 그전 요구문의 하위 위상들 a, b로부터의 요소들을 FIFO에서 독출하여 수신기에 래칭시킬 수 있다.
따라서, 본 발명에 따르면, 버스클록과 같은 주파수로 싱글 어드레스 스트로브신호를 이용해 어드레스 버스를 통해 전송되는 두개의 정보요소용 스트로브들을 제공한다. 어드레스 스트로브용 주파수(버스클록신호와 같은 주파수)에서, 신호감쇠는 문제가 아니다. 또, 스트로브 듀티사이클에서의 어떤 비대칭도 문제를 발생시키지 않는데, 이는 두개의 정보요소만이 1회의 버스클록 사이클에 전송되기 때문이다. 따라서, 상승에지와 하강에지 둘다 스트로브로 사용되는 버스클록과 같은 주파수의 싱글 어드레스 스트로브를 어드레스 스트로브신호용으로 사용할 수 있다.
한편, 다수의 (또는 두개의) 어드레스 스트로브신호를 사용할 수도 있는데, 이때 각 어드레스 스트로브 신호의 에지들중 하나만을 스트로브로 사용한다. 예컨대, 사이클 1의 25% 지점에서 활성화되는 (하강 에지를 갖는) 첫번째 어드레스 스트로브신호와, 사이클 1의 75% 지점에서 활성화되는 (하강 에지를 갖는) 두번째 어드레스 스트로브신호를 사용할 수 있다. 따라서, 두개의 어드레스 스트로브신호들의 활성화 지점들이 오프셋되거나 스태거된다. 1회의 버스클록 사이클동안 두개의 요소만이 구동되기 때문에, 어드레스 스트로브신호 주파수를 버스클록 주파수와 동일하거나 다르게 선택할 수 있다.
도 9는 다른 실시예에 따른 에이전트들 사이의 정보전송장치의 블록도이다. 제1 버스에이전트(802)가 제2 버스에이전트(832)에 연결된다. 제1 버스에이전트(802)는 양방향 어드레스 스트로브신호 라인(920)에 어드레스 스트로브신호(예, ADSTB#)를 생성하기 위한 어드레스 스트로브 발생기(940)를 포함한다. 버스에이전트(802)는 어드레스 버스나 어드레스 신호라인(926)에 어드레스와 기타신호들을 송신하기 위한 송신회로와 어드레스 신호라인(926)을 통해 수신된 신호들을 수신하기 위한 수신회로를 구비한 버스 송수신기(906)를 더 포함한다. 제2 버스에이전트(832)도 마찬가지로 양방향 어드레스 스트로브 신호라인(920)에 어드레스 스트로브신호를 생성하기 위한 어드레스 스트로브 발생기(942)를 포함한다. 제2 버스에이전트(832)는 어드레스 신호라인들(926)을 통해 신호들을 송수신하기 위한 수신회로와 송신회로를 구비한 버스 송수신기(936)를 더 포함한다.
전술한 바와 같이, 하나의 캐시라인의 데이터는 쿼드펌핑 시그널링모드를 이용해 2개의 버스클록 사이클에서 전송될 수 있고, 하나의 어드레스 요구문은 더블펌핑 시그널링 모드를 이용해 2개의 버스클록 사이클에서 전송될 수 있다. 따라서, 어드레서버스와 데이터 모두 동일한 피크 처리율을 갖고, 이때문에 밸런스된 프로세서버스가 제공된다. 주지하는 바와 같이, 나머지 신호들 대부분은 공통클록(1X) 시그널링 모드를 이용해 전송된다.
Ⅶ. 2클록 사이클의 새로운 비트율로 버스 프로토콜 복귀
전술한 바와 같이, 프로세서버스의 요구/데이터 대역폭은 멀티펌핑 시그널링 프로토콜을 이용해 증가된다. 이와 같은 (어드레스 버스에서의) 요구 대역폭과 (데이터버스에서의) 데이터 대역폭의 증가는 데이터버스 폭(64라인)의 증가 없이, 고가의 클로킹이나 경로지정 토폴로지 없이, 그리고 몇몇 펜티엄 프로세서에서 사용되는 것과 같은 기본형 버스프로토콜을 유지하면서 이루어진다.
어떤 펜티엄 프로세서에서는, 공통클록 시그널링 모드로 64개의 데이터라인들을 사용해 버스클록 사이클당 8 바이트 데이터를 전송했고, 이로인해 4개의 버스클록 사이클에서 32바이트 캐시라인이 전송되었다. 본 발명에 따르면, 캐시라인이 64바이트로 증가되었고, (버스클록 사이클당 32바이트를 전송하는) 쿼드펌핑 시그널링 모드를 이용해 2개의 버스클록 사이클에서 64바이트 캐시라인을 전송할 수 있다. 또, 어떤 펜티엄 프로세서에서는, 버스클록 사이클 1의 하위위상 a, 사이클 2의 하위위상 b, 사이클 3의 데드사이클을 포함한 3개의 버스클록 사이클에서 요구를 전송한다. 본 발명에서는, 더블펌핑 시그널링 모드를 이용해 어드레스버스상에서 싱글 버스클록 사이클로 요구의 하위위상 a, b를 둘다 전송한다. 이때문에 요구위상의 길이가 2개의 버스클록 사이클까지 감소되어, 캐시라인 전송(또는 2개의 버스클록 사이클)의 길이에 매칭된다. 따라서, 요구위상이 2개 버스클록 사이클의 길이를 갖고 캐시라인 전송에 2개의 버스클록 사이클이 필요하기 때문에, 프로세서버스의 비트율이나 비트주파수는 일반적으로 2개 버스클록 사이클이라고 할 수 있다.
본 발명에 따르면, 프로세서버스의 2개 버스클록 사이클들의 새로운 비트 주파수와 더 밀접히 매칭하도록 연속적인 위상들의 시작점들 사이의 지연을 조정하도록 버스 프로토콜을 복귀하거나 변경했다. 도 7은 (조정, 요구, 스누프, 응답 위상들을 포함한) 트랜잭션 위상들 사이의 지연을 최소화하는 도면이다. 조정(Arb), 요구(Req), 스누프, 응답(Resp) 위상들이 두개의 트랜잭션(트랜잭션 1, 트랜잭션 2)용으로 도시되었다. 숫자들은 위상들 사이의 지연을 나타낸다. 첫번째 숫자는 몇몇 펜티엄 프로세서에서 구현되는 위상들의 시작점들 사이의 최소 갯수의 버스클록 사이클을 나타내고, (괄호 안에 표시된) 두번째 숫자는 2개의 버스클록들의 새로운 비트 주파수에 더 밀접히 매칭하도록 버스 프로토콜을 조정하거나 복귀시킨 후의위상들 사이의 새로운 최소 지연을 나타낸다. 하나의 숫자만 있을 경우, 몇몇 펜티엄 프로세서와 본 발명의 실시예 사이에서 처럼 위상들 사이에 지연의 변화가 없음을 의미한다.
전술한 바와 같이, 도 7에 도시된 위상들 사이의 최소 지연은 통상 2개 버스클록 사이클이다. 도 7에 따르면, 트랜잭션 1과 같은 트랜잭션에 대한 요구위상의 시작점과 조정위상의 시작점 사이의 최소 지연은 그대로 2 버스클록 사이클이다. 트랜잭션의 요구 위상의 시작점부터 스누프 위상의 시작점까지의 최소 지연은 4 버스클록 사이클에서 3 버스클록 사이클로 감소되었다. 스누프 위상의 시작점과 응답위상의 시작점 사이의 최소 지연은 그대로 2 버스클록 사이클이다. 요구위상의 시작점과 타겟 에이전트가 TRDY# 신호를 표명할 수 있을 시점 사이의 최소지연은 3 버스클록 사이클에서 2 버스클록 사이클까지 감소되었다. TRDY# 신호의 표명으로부터 응답위상 초기까지의 최소 지연은 그대로 2 버스클록 사이클이다.
또, 연속적인 트랜잭션의 동일하거나 대응되는 위상들 사이의 최소 지연은 2 버스클록 사이클의 비트 주파수에 더 밀접히 매칭하도록 변경되었다. 도 7에 따르면, 연속적인 조정위상들 사이의 최소지연(예, 트랜잭션 1의 조정위상의 시작점과 트랜잭션 2의 조정위상의 시작점 사이의 최소지연)이 3 버스클록 사이클에서 2 사이클로 감소되었다. 연속적인 요구위상들 사이의 최소지연도 3 버스클록 사이클에서 2 사이클로 감소되었다. 연속적인 스누프 이상들 사이의 최소 지연 역시 3 버스클록 사이클에서 2 사이클로 감소되었다. 그리고, 연속적인 응답위상들 사이의 최소지연 역시 3 버스클록 사이클에서 2 사이클로 감소되었다.
(지연 감소가 발생하는) 위상들 사이의 지연 감소에 기여하는 위상용 버스프로토콜에 대한 몇몇 변화나 변경의 간단한 설명과 함께 위상들 각각에 대해 설명한다.
요구 에이전트가 버스를 차지하지 않을 때, 조정위상으로 트랜잭션들이 시작하는데, 이 위상에서 요구에이전트는 버스를 차지한다. 요구 에이전트가 버스를 차지한 뒤, 트랜잭션들은 요구위상으로 진입한다. 요구위상의 첫번째 하위위상 a에서, 유효 어드레스를 표시하는 ADS# 신호는 스누핑과 메모리접속을 시작하기에 충분한 정보 및 트랜잭션 어드레스와 함께 구동된다. 요구위상의 두번째 하위위상 b에서, 요구문을 위한 각종 보조정보가 바이트 인에이블(어느 데이터 바이트들이 데이터라인에 제공될지를 표시함), 지연된 ID, 트랜잭션 길이 및 기타 트랜잭션 정보를 포함한 버스(117)로 출력된다. 이들 첫번째 및 두번째 하위위상들은 1 버스클록 사이클동안 구동된다. 그 결과, 본 발명에 따라, 요구정보(그중 상당부분은 어드레스 버스를 통해 제공됨)는 2X 데이터 전송속도를 갖는다고 할 수 있다.
본 발명에 따르면, 모든 트랜잭션이 스누프 위상을 갖는다. 스누프 위상으로부터의 스누프 결과들은 트랜잭션용으로 구동된 어드레스가 어떤 버스 에이전트의 캐시에서 유효하거나 변경된(오염된) 캐시라인을 참조할지를 지시한다. 스누프 결과들은 또한 트랜잭션이 차례대로 완결될지 또는 가능한한 순서와 무관한 완결을 위해 지연될 수 있을지를 표시한다. 에이전트가 스누프 스톨(stall)을 이용해 스누프 위상을 펼쳐 스누프할 준비가 되어 있지 않으면 트랜잭션이 지연될 수 있다.
위상들 각각에 대해 설명하고, 그 차이를 밝혀 위상들 사이의 지연을 감소시키는데 이용했다.
1) 조정위상: 버스 에이전트가 프로세서버스(117)를 차지할 때까지 어떤 트랜잭션도 발생할 수 없다. 프로세서버스(117)로 트랜잭션을 구동시키길 원하는 에이전트가 아직 그 버스(117)를 차지하지 않고 있으면 트랜잭션만이 이 위상을 가질 필요가 있다. 본 발명에 따르면, 두 등급의 버스 에이전트들(대칭 에이전트, 우선권을 갖는 에이전트)을 지원하는 버스 조정 프로토콜이 제공된다. 버스(117)상의 프로세서들은 통상 대칭 에이전트처럼 조정한다. 우선권을 갖는 에이전트(예, 시스템 인터페이스(116))는 통상 I/O 하위시스템(I/O 브리지(124)나 I/O 에이전트들)과 메모리 하위시스템(메인메모리 하위시스템(122)에 위치한 메모리 에이전트)을 위해 조정한다.
버스 소유를 위한 조정에 사용될 수 있는 신호군의 일례가 아래 표시되어 있는바, 여기서 #는 활성 로우신호를 의미한다.
조정신호의 예
핀/신호명 핀 간략기호 신호 간략기호
대칭 에이전트 버스 요구 BR[3:0]# BREQ[3:0]#
우선권을 갖는 에이전트 버스 요구 BPRI# BPRI#
블록 넥스트 요구 BNR# BNR#
로크 LOCK# LOCK#
프로세서버스(117)로 인해 다수의 에이전트들이 이 버스를 동시에 조정할 수 있다. 대칭 에이전트들은 라운드 로빈방식 우선권 부여체계를 기초로 버스(117)를 조정한다. 조정체계는 모든 대칭 에이전트들에 대한 요청 위상들의 공정한 접속을 보장한다. 각각의 대칭 에이전트는 리셋에 할당된 고유 에이전트 ID(예, 에이전트 0, 1, 2, 3)를 갖고, 원형 순서대로 조정이 일어난다. 리셋 이후, 에이전트 0은 에이전트 1, 2, 3보다 가장 우선권을 갖는다. 각각의 대칭에이전트는 가장 최근의 버스 소유자의 대칭 에이전트 ID를 반영하는 공통 회전 ID를 유지한다. 매번 조정이 될 때마다, 가장 우선권을 갖는 대칭 에이전트가 소유자가 되고, 버스 사용을 금지하는 최고 우선권에 대한 다른 행동이 없을 경우 요구위상으로 진입할 수 있다. 우선권 에이전트(들)은 대칭 소유자보다 높은 우선권을 갖는다.
대칭 에이전트는 BREQn# 신호를 표명하여 버스를 요구한다. BREQ[3:0]에 샘플링된 값과 최종 대칭버스 소유자를 기초로, 모든 에이전트들은 다음 대칭버스 소유자를 동시에 결정할 수 있다. 우선권 에이전트는 BPRI#를 표명하여 버스를 요청하고, 이 신호는 조정체계에 임시로 실리는데, 이는 BPRI#가 샘플링되어 비활성화될 때까지 다른 어떤 대칭에이전트도 다른 언록(unlocked) 버스 트랜잭션을 일으키지 않기때문이다. 어떤 버스 에이전트도 BNR# 신호를 표명하여 다른 트랜잭션들이 이 버스로 출력되는 것을 방지할 수 있다. 이 버스는 일반적으로 버퍼와 같은 시스템 리소스들이 충전되고 다른 트랜잭션을 수용할 수 없을 때 사용된다. LOCK# 신호가 표명되면, 버스에이전트가 인터럽트되어서는 안되는 버스 트랜잭션들의 원자 시퀀스를 실행하고 있음을 의미한다.
우선권 에이전트는 BPRI#를 비활성화시킬 수 있고, 자신의 최종 요구를 생성하는 사이클에서 버스 소유권을 해제할 수 있다. 몇몇 펜티엄 프로세서에서는, BPRI# 신호가 표명된 뒤에는, 최소 2개의 버스클록 사이클을 위해 BPRI# 신호가 비활성화되어야 한다. 이것은 (몇몇 펜티엄 프로세서에서) 지난 3개 버스클록 사이클 속도에 매칭되었고, 따라서 버스에 대한 대칭 에이전트들과 우선권 에이전트들의평형 접속을 제공했다. 본 발명에 따르면, BPRI# 신호가 표명된 뒤 최소 하나의 버스클록 사이클을 위해서만 이 프로토콜을 바꿔 BPRI# 신호를 비활성화시킬 필요가 있었다. 본 실시예에서의 이런 변화들은 2개의 버스클록 사이클 비트율을 지원하는바, 하나는 활성화를 위한 버스클록 사이클이고, 하나는 비활성화를 위한 사이클이다.
주지하는 바와 같이, 예컨대 에이전트가 다른 트랜잭션을 지원하기에 충분한 리소스들을 갖지 않을 때, BNR# 신호를 이용해 더이상의 요구들을 지연시킬 수 있다. 본 실시예에 따르면, 요구스톨 프로토콜은 다음 3개 상태를 기초로 구현되고 결정된다.
1) 자유상태: 이 상태에서, 에이전트의 요구 생성 능력은 BNR# 요구스톨 프로토콜에 의해 제한되지 않고, 버스의 소유권과 요구율에 의해서면 제한된다. 몇몇 펜티엄 프로세서에서, 자유상태에서의 BNR# 샘플링 포인트는 ADS#가 샘플링되어 표명된 뒤 3개 클록 사이클들을 발생시킨다. 에어전트가 자유상태에서 새로운 요구생성을 중단하고자 할 경우, ADS#로부터의 유효 BNR# 샘플링 포인트 이전의 클록 사이클에서 BNR# 액티브를 가동시킨다. 다음 클록사이클에서, 모든 에이전트들은 BNR# 샘플링 포인트에서 그리고 스톨된 상태로 변화할 때 활성 BNR#를 관찰한다.
2) 트로틀 상태: 이 상태에서는, 에이전트가 일단 버스 소유권을 갖고 최대의 ADS# 요구율이 유지되면, 에이전트는 하나의 요구를 할 수 있다. BNR# 샘플링 포인트는 트로틀 상태의 첫번째 클록사이클에 있다. 트로틀 상태에서, BNR#가 BNR# 샘플링 포인트상에 활성화되어 있으면, 스톨상태로 변화된다. BNR#가 BNR# 샘플링 포인트상에 비활성화되어 있으면, 자유상태로 변한다.
3) 스톨상태: 이 상태에서는 BNR# 샘플링 포인트에서 샘플링된 BNR#이 비활성화될 때까지 에이전트가 요구를 할 수 없다. 스톨상태로 들어가고 BNR#와 같은 길이의 모든 다른 후속 클록 사이클들이 샘플링 포인트에서 활성화될 때까지 BNR# 샘플링 포인트는 버스클록 사이클에서 시작한다. 요구 스톨상태는 항상 리셋 이벤트(INIT# 또는 RESET#) 이후 시작하여 스톨된다. 에이전트는 (유효 샘플링 포인트 이전의) 2 클록사이클마다 BNR#를 표명하여 스톨상태를 연장할 수 있다. BNR#가 스톨상태동안 활성화되지 않으면, 요구스톨상태가 트로틀상태로 바뀐다.
따라서, 표명된 이후 (2개 사이클이 아닌) 최소 1개의 버스클록 사이클동안만 BPRI#가 표명되도록 하고, ADS# 신호를 샘플링하여 표명한 뒤 (3개 사이클이 아닌) 2개 사이클을 생성하도록 자유상태에서 BNR# 샘플링 포인트를 조정하면, 연속적인 조정위상들 사이의 최소 지연이 3개 버스클록 사이클에서 2개 버스클록 사이클로 감소된다.
2) 요구위상: 요구위상은 트랜잭션이 실제로 버소로 출력되는 위상이다. 본 발명에 따르면, 요구위상은 시간상으로 1회의 공통버스클록 사이클이다. 요구위상은 처음 절반의 a와 두번째 절반인 b의 두개의 하위위상을 포함한다. 트랜잭션 어드레스를 포함한 요구정보는 요구위상중에 전송된다. 요구위상은 ADS# 신호의 표명으로 어드레스 스트로브신호를 시작한다. 요구를 전송하는데 사용할 수 있는 신호군의 일례는 다음과 같다.
핀 명 핀 간략기호 신호명 신호 간략기호 갯수
어드레스 스트로브 ADS# Address Strobe ADS# 1
요구 명령 REQ[4:0]# Requesta REQa[4:0]# 5
Extended Requestb REQb[4:0]#
요구 스트로브 ADSTB[1:0]# Request Strobes ADSTB[1:0]# 2
어드레스 Address1 Aa[35:3]# 33
Reservedb Ab[35:32]#
Attributesb ATTR[7:0]# 또는Ab[31:24]#
Deferred IDb DID[7:0]# 또는Ab[23:16]#
Byte Enablesb BE[7:0]# 또는Ab[15:8]#
Extended Functionsb EXF[4:0]# 또는Ab[1:0]#
주의사항: a. 이들 신호는 요구위상의 첫번째 하위위상(하위위상 a)동안에는 지정된 핀에서 구동됨.
b. 이들 신호는 요구위상의 두번째 하위위상(하위위상 b)동안 구동됨.
따라서, 트랜잭션 어드레스는 Aa[35:3]에서 전송되고(여기서 A는 어드레스라인이나 어드레스버스(204)를, a는 하위위상 a동안 전송되는 신호를 의미), 트랜잭션을 설명하는 추가정보(예, byte enables, attributes, extended functions)는 Ab[35:3]에서 전송된다(여기서, b는 추가정보가 하위위상 b동안 어드레스라인을 통해 전송됨을 의미). ADS#의 표명은 요구위상의 시작을 의미한다. ADSTB[1:0]은 ADS#가 표명되는 모든 버스클록 사이클에서 한번씩 토글되고 다른 사이클에서는 토글되지 않아야한다. REQa[4:0]#와 REQb[4:0]은 트랜잭션 타입을 구별한다.
본 발명에 따르면, 요구는 프로세서버스로 출력될 수 있는바:
1) 소유권 관찰 이후의 클록사이클; 및
2) 그전 트랜잭션을 위한 ADS# 표명 이후의 두개 이상의 클록, 및
3) BNR#가 비활성이라고 관찰되고, 그리고
4) 에이전트에 의해 활성화되지 않았을 경우의 LOCK#가 비활성이라고 관찰된다.
몇몇 펜티엄 프로세서에서는 프로세서버스로 요구를 출력할 수 있기 전에 그 전 트랜잭션의 ADS#의 표명 이후 최소 3개 클록사이클의 지연을 필요로 했다. 연속적인 트랜잭션들의 요구위상들 사이의 최소 지연을 3 클록사이클에서 2 클록사이클로 줄이기 위해, 본 발명에서는, 그 전 트랜잭션의 ADS# 신호의 표명 이후 2개 버스클록 사이클이 지난 뒤 에이전트가 버스에 요구를 출력하면 된다. 전술한 바와 같이, ADS# 신호는 요구위상의 개시를 확인하고, 요구위상의 하위위상 a가 (어드레스 버스를 통해 제공된) 어드레스와 (REQ#[4:0] 라인들을 통해 제공된) 요구를 포함한 프로세서버스에 출력되고 있음을 표시한다.
3) 스누프위상: 본 발명에 따르면, 프로세서버스는 다중 캐시에이전트를 위해 캐시일관성을 지원한다. 일관성(또는 데이터 일관성)은, 다중레벨의 캐시와 메모리 그리고 다중 캐시에이전트들을 갖는 시스템이나 컴퓨터가 스테일(틀린) 데이터와 행위들을 독출하는 모든 에이전트가 필요에 의해 직렬화될 수 없는 공유메모리 모델을 제시하는 것을 보장한다. 라인은 캐시에이전트에서의 캐시 단위이다. 본 발명에 따르면, 캐시라인은 64바이트이지만, 다른 사이즈의 캐시라인도 사용할 수 있다.
캐시 프로토콜은 라인들과 상태들을 연관지우고, 상태변화를 취급하는 규칙들을 정의한다. 본 발명에 따르면, 4개의 라인상태가 있는바: 메모리에서보다는 라인의 최근값을 포함하고 라인이 캐시에 있음을 표시하며, 이 라인이 다른 모든 에이전트에서는 유효하지 않음을 표시하는 M(Modified); 라인이 캐시에 있고 메모리와 동일한 값이며, 다른 모든 에이전트에서는 유효하지 않음을 표시하는 E(Exclusive); 라인이 캐시에 있고 메모리와 같은 값을 가지며, 다른 에이전트에도 있을 수 있음을 표시하는 S(Shared); 및 라인이 캐시에서는 얻을 수 없고 다른 캐시나 에이전트로부터 받아야 함을 표시하는 I(Invalid)의 4개 라인상태가 있다.
스누프위상이란 캐시일관성이 강요되는 위상이다. 다음은 스누프위상동안 사용될 수 있는 스누프신호들의 리스트의 일례이다.
스누프 신호의 예
신호 기능 핀 명 드라이버
변형되지 않은 캐시라인 유지 HIT# 공유라인을 갖는 에이전트
변형된 캐시라인 적중 HITM# 오염라인을 갖는 에이전트
트랜잭션 완료 지연 DEFER# 응답 에이전트
스누프위상에서는 모든 캐시에이전트들이 자신들의 스누프 결과들을 구동하고 캐시일관성 결정에 참여한다. 에이전트들은 자신의 것이 아닌 거의 모든 메모리 트랜잭션을 위한 내부 스누프 결과들을 생성한다. 모든 캐시 에이전트들(스누프 에이전트들)은 HIT#, HITM# 신호들을 이용해 이 위상동안 자신들의 스누프 결과들을 버스로 출력한다. HIT#가 스누프 위상동안 표명되면, 요청된 데이터를 포함하는 캐시라인의 카피가 이 인터페이스상에서 다른 에이전트의 캐시에 있음을 의미한다. HITM#가 스누프 위상동안 표명되면, 요청된 데이터를 포함한 캐시라인의 변형된 카피가 이 인터페이스상에서 다른 에이전트의 캐시에 있음을 의미한다. HIT#와 HITM#가 스누프 위상동안 한 에이전트에 의해 동시에 표명되면, 스누프 스톨이 발생했고 현재의 스누프 위상이 연장되어야 한다. DEFER#가 스누프 위상동안 표명되면, 현재의 트랜잭션이 완료되었음을 보장할 수 없음을 의미한다.
몇몇 펜티엄 프로세서에서는, ADS# 신호가 표명되고난 뒤 그리고 그 전 트랜잭션의 스누프 위상으로부터 최소 3개의 클록사이클이 지난 뒤 스누프 결과들이 구동되었다. 그러나, 본 발명에서는, 이들 최소지연들이 프로세서버스의 새로운 비트 주파수에 더 밀접히 매칭되도록 변형되었다. 본 발명에 의하면, ADS# 신호들이 표명되고난 뒤(즉, 요구위상이 시작되고 3개의 버스클록 사이클이 지난 뒤) 그리고 그전 트랜잭션의 스누프 위상 이후 최소 2개 클록사이클이 지난 뒤(즉, 그 전 트랜잭션용 버스로 스누프 결과들이 출력되고 최소 2개 클록사이클이 지난 뒤) 스누프 결과들을 구동할 수 있다. 따라서, HIT#/HITM#/DEFER# 신호들(스누프 결과들)의 최대 활성화율이 3개 버스클록 사이클마다 한번에서 3개 버스클록 사이클마다 한번으로 변화되었다. 요구위상(하위위상 b)의 끝으로부터 스누프위상까지의 지연은 요구위상이 1사이클 단축되었기 때문에 동일하다.
4) 요구위상: 이 위상에서는 응답에이전트가 트랜잭션 응답을 프로세서버스로 출력한다. 요구위상에서 시작된 요구들은 모든 버스 에이전트들에 의해 유지되는 순차적인 대기열로 들어간다. 응답에이전트는 순차적인 대기열의 상단에서 트랜잭션을 완료하기 위한 에이전트이다. 응답에이전트는 요구위상동안 트랜잭션에 의해 어드레스되는 소자나 에이전트이다. 응답위상에 사용될 수 있는 신호군의 예를 들면 아래와 같다.
응답신호들의 예
형식 신호명 갯수
응답상태 RS[2:0]# 3
응답 패리티 RSP# 1
타겟 준비완료 TRDY# 1
트랜잭션 응답은 RS[2:0]# 신호들에 엔코드된다. 가능한 응답의 예로는, 정상데이터 응답(응답 에이전트는 응답과 함께 리드 데이터를 전송할 필요가 있음), 재시도 응답(DEFER#가 스누프 위상중에 표명되어 트랜잭션을 재시도해야 함을 의미), 지연응답(응답 에이전트가 지연된 재시도 트랜잭션을 이용해 장래 트랜잭션을 완료할 것을 약속함), 데이터 무응답(어드레스된 에이전트에 의해 아무 데이터도 복귀되지 않음) 등이 있다. 응답 에이전트에 의해 TRDY#가 표명되면, 라이트나 라이트백 데이터를 수신할 준비과 되었음을 의미한다. RSP# 신호들은 RS 신호의 패리티들을 제공한다.
어떤 펜티엄 프로세서들에서는, 그 전 트랜잭션의 응답위상이 끝나고 최소 3개 클록사이클이 지난 뒤에야 응답이 구동될 수 있었다. 본 발명에서는, 연속 트랜잭션들의 응답위상들 사이의 최소 지연이 프로세서버스의 새로운 비트 주파수에 더 밀접히 매칭하도록 조정되었다. 본 발명에 의하면, 그 전 트랜잭선의 응답이 끝나고 최소 2개 버스사이클이 지난 뒤 응답을 구동할 수 있다. 이런 최소 지연은 통상 이 지연을 연장시킬 수 있는 다른 제약들을 받게 된다. 요구신호들에 사용되는 더블펌핑 시그널링 모드때문에, (펜티엄 프로세서에서의 3개 버스클록 사이클마다 1회에 비해) 2회의 버스클록 사이클마다 응답이 한번씩 구동될 수 있다.
요구 개시 트랜잭션은 요구에이전트가 전송할 라이트 데이터를 갖는 트랜잭션이다. 어드레스된 에이전트는 TRDY#를 표명하여 라이트 연산을 실행하고자 하는 요구 에이전트로부터 데이터를 수신할 수 있음을 표시한다. 어떤 펜티엄 프로세서에서는, 동일한 트랜잭션용 ADS# 신호가 표명되고 최소 3개 버스클록 사이클이 지난 뒤에야 TRDY# 신호가 표명될 수 있었다. 통상 이 지연을 늘릴 수 있는 다른 제약이 있다. 이런 지연은 프로세서버스의 새로운 비트 주파수에 더 밀접히 매칭하도록 변형되었다. 본 발명에 따르면, 동일한 트랜잭션용 ADS# 신호가 표명되고 최소 3개 버스클록 사이클이 지난 뒤 어드레스된 에이전트가 TRDY#를 표명할 수 있다. 요구위상의 끝에서 TRDY#까지의 지연은 변하지 않는다.
5) 데이터(전송) 위상: 데이터 위상동안에는, 프로세서버스(117)를 통해 서로 다른 버스 에이전트들 사이로 데이터가 전송된다. 요구위상을 기초로, 트랜잭션은 "요구-개시된" (라이트) 데이터전송, "응답-개시된" (리드) 데이터전송, 또는 데이터 무전송을 포함한다. 이 데이터위상은 트랜잭션용 요구위상과 겹칠 수 있다.
데이터 위상에 사용될 수 있는 신호 리스트는 아래와 같다.
데이터 신호의 예
형식 신호명 갯수
데이터 준비완료 DRDY# 1
데이터 버스 사용중 DBSY# 1
데이터 스트로브 DSTBp[3:0]#DSTBp[3:0]# 8
데이터 D[63:0]# 64
데이터 반전 DINV[3:0]# 4
데이터 패리티 DP[3:0]# 4
DRDY#는 유효데이터가 버스(117)에 있고 래칭되어야 함을 의미한다. 데이터버스 소유자는 유효데이터를 전송해야하는 버스클록 사이클마다 DRDY#를 표명한다. DRDY#는 데이터위상에 대기상태를 삽입하도록 비활성화될 수 있다. DBSY#는 다중버스클록 데이터전송을 위해 첫번째 DRDY# 표명 이전에 그리고 후속 DRDY# 표명들 사이사이에 데이터버스를 유지하는데 사용될 수 있다. DINV[3:0]#는 데이터 비트들이 데이터 소스에 의해 반전되었음을 표시하는데 사용된다.
데이터버스(206)의 데이터신호 D[63:0]#는 버스 에이전트들 사이에 64-비트 경로를 제공한다(도 2 참조). I/O 리드와 I/O 라이트 트랜잭션들을 포함한 부분전송을 위해, 데이터버스의 몇 바이트들이 유효데이터를 포함하는지를 바이트 인에이블 신호들(BE[7:0]#)이 결정한다. DP 신호들은 데이터신호들에 패리티를 제공하는데 사용될 수 있다.
본 발명에 의하면, 데이터신호들 D[63:0]#를 이용해 싱글 버스클록 사이클에서 4개의 8-바이트 데이터요소들을 전송하는 쿼드펌핑(4X) 소스동기 래칭 프로토콜을 이용해 데이터를 전송할 수 있다. 첫번째 8-바이트들은 버스클록의 처음 1/4 기간중에, 두번째 8-바이트들은 버스클록의 두번째 1/4 기간중에, 세번째 8-바이트들은 버스클록의 세번째 1/4 기간중에, 네번째 8-바이트들은 버스클록의 네번째 1/4 기간중에 (버스트 순서로) 전송된다. 전송할 데이터의 길이가 1-8 바이트이면 버스클록의 첫번째 1/4 기간중에 데이터를 전송할 수 있고, 데이터길이가 9-16 바이트이면 버스클록의 처음 2/4 기간중에 데이터를 전송할 수 있다.
본 발명의 이상의 실시예들은 예를 든 것일 뿐이고, 본 발명을 제한하는 것은 아니다. 따라서, 본 발명은 첨부된 특허청구범위에 의해 보호받아야 할 것이다.

Claims (25)

  1. 구동 에이전트로부터 하나 이상의 수신 에이전트에 다분기 버스를 통해 정보를 전송하는 방법에 있어서:
    상기 구동 에이전트와 수신 에이전트 둘다에 공통버스클록을 제공하는 단계;
    상기 구동 에이전트로부터 수신 에이전트로 버스 트랜잭션을 보내는 단계; 및
    상기 구동 에이전트로부터 수신 에이전트로 데이터를 전송하는 단계;를 포함하고,
    상기 구동 에이전트는 버스클록 주파수의 몇배의 속도로 어드레스 버스에 요구용 다중 정보요소들을 출력하며;
    상기 구동 에이전트는 어드레스 버스에서 구동된 정보요소들을 상기 수신 에이전트들이 샘플링해야 할 때를 식별하도록 첫번째 스트로브 신호를 활성화시키고;
    상기 구동 에이전트는 버스클록 주파수의 다른 몇배의 속도로 데이터버스에 다중 정보요소들을 출력하며;
    상기 구동 에이전트는 데이터버스로 출력된 정보요소들을 상기 수신 에이전트가 샘플링해야 할 때를 식별하도록 두번째 스트로브를 활성화시키는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 어드레스에 요구용 다중 정보요소들을 출력하는 상기 구동에이전트가 버스클록 주파수의 두배 이상의 속도로 어드레스버스에 요구용의 2개 이상의 정보요소를 출력하는 구동 에이전트를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 어드레스에 요구용 다중 정보요소들을 출력하는 상기 구동 에이전트가 버스클록 주파수의 두배의 속도로 어드레스버스에 요구용의 2개의 정보요소를 출력하는 구동 에이전트를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서, 데이터버스에 다중 정보요소들을 출력하는 상기 구동 에이전트가 버스클록 주파수의 네배 이상의 속도로 데이터버스에 4개 이상의 정보요소를 출력하는 구동 에이전트를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 데이터버스에 다중 정보요소들을 출력하는 상기 구동 에이전트가 버스클록 주파수의 네배의 속도로 데이터버스에 4개의 정보요소를 출력하는 구동 에이전트를 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 두번째 스트로브를 활성화시키는 상기 구동 에이전트가 데이터버스에 출력된 정보요소들을 수신 에이전트가 샘플링해야 할 때를 식별하도록 위상 스트로브들중 적어도 두개를 활성화시키는 구동 에이전트를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 상기 수신 에이전트가 데이터버스에 출력된 정보요소들을 샘플링해야 할 때를 식별하는데 스트로브의 에지들중 한가지 형태의 에지만을 이용하는 것을 특징으로 하는 방법.
  8. 모든 에이전트에 제공되는 공통 버스클록, 다분기 양방향 어드레스 버스 및 다분기 양방향 데이터 버스를 포함한 버스를 서로 다른 형식의 신호들을 위한 두개의 시그널링 모드로 동작시키는 방법에 있어서:
    이들 시그널링 모드들은,
    출력된 정보요소들을 샘플링하기 위한 포인트들을 식별하는 버스클록의 주파수와 동일한 속도로 상기 버스에 신호들을 출력할 수 있는 공통클록 시그널링 모드; 및
    출력된 정보요소들을 위한 샘플링 포인트들을 식별하도록 하나 이상의 스트로브 신호들을 활성화시키고 버스클록 주파수의 몇배의 속도로 어드레스 버스나 데이터 버스중의 적어도 하나에 구동 에이전트에 의해 정보요소들을 출력할 수 있는 멀티펌핑 시그널링 모드;를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서, 정보요소들의 샘플링 포인트들을 식별하는데 하나 이상의 스트로브 신호들의 에지들중 한가지 형식의 에지만을 이용하는 것을 특징으로 하는 방법.
  10. 제8항에 있어서, 상기 하나 이상의 스트로브 신호들이 다수의 스트로브 신호를 포함하고, 이들 다수의 스트로브 신호들은 위상이 어긋나거나 스태거 배열로 활성화되는 것을 특징으로 하는 방법.
  11. 제8항에 있어서, 상기 정보요소들 각각에 중심이 맞춰지는 샘플링 포인트들을 식별하는데 상기 하나 이상의 스트로브 신호들을 이용하는 것을 특징으로 하는 방법.
  12. 제1 최소 지연으로 수행될 수 있는 버스를 통해 트랜잭션의 데이터 전송부를 제공하는 단계;
    제2 최소 지연으로 수행될 수 있는 버스 트랜잭션의 요구부를 제공하는 단계; 및
    상기 제1 및 제2 최소 지연들중의 하나 이상에 연속적인 버스 트랜잭션들의 대응 위상들의 시작점들 사이의 최소 지연을 매칭하는 단계;를 포함하는 것을 특징으로 하는 버스 밸런싱 방법.
  13. 제12항에 있어서, 상기 제1, 제2 지연들이 동일한 것을 특징으로 하는 방법.
  14. 다수의 버스 에이전트들에 연결된 버스에 있어서:
    공통 버스클록, 어드레스 스트로브신호 및 데이터 스트로브신호를 포함한 다수의 제어신호들을 제공하는 다분기 양방향 제어버스;
    버스클록 주파수의 몇배의 주파수로 구동 에이전트에 의해 데이터버스에 정보요소들을 출력하기 위한 다분기 양방향 데이터버스; 및
    버스클록 주파수의 몇배의 주파수로 구동 에이전트에 의해 어드레스 버스에 정보요소들을 출력하기 위한 다분기 양방향 어드레스버스;를 포함하고,
    상기 구동 에이전트는 데이터버스에 출력된 정보요소들을 샘플링하기 위한 포인트들을 식별하도록 데이터 스트로브신호를 활성화시키며;
    상기 구동 에이전트는 어드레스버스에 출력된 정보요소들을 샘플링하기 위한 포인트들을 식별하도록 어드레스 스트로브신호를 활성화시키는 것을 특징으로 하는 버스.
  15. 적어도 하나는 구동 에이전트로 동작하는 다수의 에이전트; 및
    상기 에이전트들에 연결되고, 모든 에이전트들에 공통버스클록을 제공하기 위한 공통버스 클록라인, 어드레스 스트로브 신호라인 및 다수의 데이터 스트로브 신호라인들을 포함한 제어버스, 어드레스버스 및 데이터버스를 포함하는 다분기 양방향 버스;를 포함하고,
    버스클록 주파수의 몇배의 속도로 요구 정보요소들을 전송하는 멀티펌핑 시그널링 모드를 이용해 구동 에이전트가 요구를 어드레스 버스에 출력할 수 있고, 상기 구동 에이전트는 어드레스 스트로브 신호라인상의 어드레스 스트로브신호를 임시로 활성화하여 어드레스 버스로 출력된 정보요소의 샘플링 포인트들을 확인할수 있으며;
    버스클록 주파수의 몇배의 속도로 데이터 요소들이 구동 에이전트에 의해 데이터 버스에 출력되는 멀티펌핑 시그널링 모드를 이용해 구동 에이전트가 데이터를 전송할 수 있고, 상기 구동 에이전트는 또한 스태거되거나 오프셋 배열로 다수의 데이터 스트로브 신호들을 다수의 데이터 스트로브 신호라인들에 임시로 활성화하여 데이터요소들의 샘플링 포인트들을 확인하는 것을 특징으로 하는 정보전송장치.
  16. 제15항에 있어서, 상기 데이터 스트로브 신호들의 하나의 에지만을 이용해 데이터 요소의 샘플링 포인트들을 확인하는 것을 특징으로 하는 정보전송장치.
  17. 제16항에 있어서, 상기 데이터요소의 샘플링 포인트들을 확인하기 위한 데이터 스트로브 신호들의 상기 하나의 에지가 데이터 스트로브 신호들의 상승에지만을 포함하는 것을 특징으로 하는 정보전송장치.
  18. 제16항에 있어서, 상기 데이터요소의 샘플링 포인트들을 확인하기 위한 데이터 스트로브 신호들의 상기 하나의 에지가 데이터 스트로브 신호들의 하강에지만을 포함하는 것을 특징으로 하는 정보전송장치.
  19. 적어도 하나는 구동 에이전트로 동작하는 다수의 에이전트; 및
    조정위상, 요구위상, 스누프 위상, 응답 위상 및 데이터 전송위상의 일부를포함한 다수의 위상으로 이루어지는 각각의 버스 트랜잭션들을 버스를 통해 실행하는 상기 다수의 에이전트들에 연결된 양방향 버스;를 포함하고,
    상기 버스는,
    모든 에이전트들에 공통 버스클록을 제공하는 공통 버스클록 라인, 어드레스 스트로브 신호라인, 및 다수의 데이터 스트로브 신호라인들을 포함하는 제어버스;
    버스클록 주파수의 두배 이상의 속도로 요구위상을 위한 정보요소들을 전송하는 어드레스 버스; 및
    버스클록 주파수의 4배 이상의 속도에서 데이터 전송위상으로 데이터 요소들을 전송하는 데이터버스;를 포함하며,
    연속적인 버스 트랜잭션들을 위한 대응 위상들의 시작점들 사이의 최소 지연이 상기 위상들중 적어도 하나에 대한 2회의 버스클록 사이클인 것을 특징으로 하는 정보전송장치.
  20. 제19항에 있어서,
    연속 트랜잭션들의 조정위상들의 시작점들 사이의 최소 지연이 2 버스클록 사이클이고;
    연속 트랜잭션들의 요구위상들의 시작점들 사이의 최소 지연이 2 버스클록 사이클이며;
    연속 트랜잭션들의 스누프 위상들의 시작점들 사이의 최소 지연이 2 버스클록 사이클이고;
    연속 트랜잭션들의 응답위상들의 시작점들 사이의 최소 지연이 2 버스클록 사이클인 것을 특징으로 하는 정보전송장치.
  21. 제19항에 있어서, 요구위상의 시작점과 스누프 위상의 시작점 사이의 최소 지연이 3 버스클록 사이클인 것을 특징으로 하는 정보전송장치.
  22. 제19항에 있어서, 요구위상의 시작점과 타겟인 어드레스된 에이전트가 데이터를 수신할 준비가 되었음을 지적하는 신호를 구동할 수 있을 시점 사이의 최소 지연이 2 버스클록 사이클인 것을 특징으로 하는 정보전송장치.
  23. 적어도 하나는 구동 에이전트로 동작하는 다수의 에이전트들; 및
    모든 에이전트에 공통 버스클록을 제공하기 위한 공통 버스클록 라인과 다수의 데이터 스트로브 라인들을 포함한 제어버스, 어드레스버스 및 데이터버스를 포함하고, 상기 에이전트들에 연결된 양방향 다분기 버스;를 포함하고,
    버스클록 주파수의 4배 이상의 속도로 데이터 요소들이 구동요소에 의해 데이터버스로 출력되는 멀티펌핑 시그널링 모드를 이용해 구동 에이전트가 데이터를 전송하고, 상기 구동 에이전트는 또한 스태거되거나 오프셋 배열로 다수의 데이터 스트로브 신호들을 다수의 데이터 스트로브 신호라인들에 임시로 활성화시켜 데이터 요소들의 샘플링 포인트들을 확인할 수 있는 것을 특징으로 하는 정보전송장치.
  24. 적어도 하나는 구동 에이전트로 동작하는 다수의 에이전트들; 및
    모든 에이전트에 공통 버스클록을 제공하기 위한 공통 버스클록 라인, 어드레스 스트로브 신호라인, 및 다수의 데이터 스트로브 신호라인들을 포함한 제어버스, 어드레스버스 및 데이터버스를 포함하고, 상기 에이전트들에 연결된 버스;를 포함하고,
    조정위상, 요구위상, 스누프위상, 응답위상 및 데이터 전송위상의 일부를 포함한 다수의 위상들로 이루어지는 각각의 버스 트랜잭션들이 상기 버스를 통해 에이전트들 사이에서 실행될 수 있으며;
    상기 요구위상의 정보요소들을 공통 버스클록 주파수의 두배 이상의 속도로 구동하는 멀티펌핑 시그널링 모드를 이용해 구동 에이전트가 요구를 어드레스 버스에 출력할 수 있고, 상기 구동 에이전트는 또한 어드레스 스트로브 신호라인상의 어드레스 스트로브신호를 활성화하여 어드레스 버스로 출력된 정보요소의 샘플링 포인트를 확인할 수 있으며;
    버스클록 주파수의 4배 이상의 속도로 데이터요소들을 구동 에이전트에 의해 데이터 버스로 출력하는 멀티펌핑 시그널링 모드를 이용해 구동 에이전트가 데이터 전송위상동안 데이터를 전송할 수 있고, 상기 구동 에이전트는 또한 스태거되거나 오프셋 배열로 다수의 데이터 스트로브 신호라인들에 다수의 데이터 스트로브 신호들을 임시로 활성화하여 데이터 요소의 샘플링 포인트들을 확인할 수 있으며;
    연속적인 버스 트랜잭션들의 대응 위상들의 시작점들 사이의 최소 지연이 이들 위상들중 적어도 하나에 대해 2 버스클록 사이클인 것을 특징으로 하는 정보전송장치.
  25. 제24항에 있어서,
    연속적인 트랜잭션들의 조정위상들의 시작점들 사이의 최소 지연이 2 버스클록 사이클이고;
    연속적인 트랜잭션들의 요구위상들의 시작점들 사이의 최소 지연이 2 버스클록 사이클이며;
    연속적인 트랜잭션들의 스누프 위상들의 시작점들 사이의 최소 지연이 2 버스클록 사이클이고;
    연속적인 트랜잭션들의 응답위상들의 시작점들 사이의 최소 지연이 2 버스클록 사이클인 것을 특징으로 하는 정보전송장치.
    버스클록 주파수의 4배 이상의 속도로 데이터 요소들이 구동요소에 의해 데이터버스로 출력되는 멀티펌핑 시그널링 모드를 이용해 구동 에이전트가 데이터를 전송하고, 상기 구동 에이전트는 또한 스태거되거나 오프셋 배열로 다수의 데이터 스트로브 신호들을 다수의 데이터 스트로브 신호라인들에 임시로 활성화시켜 데이터 요소들의 샘플링 포인트들을 확인할 수 있는 것을 특징으로 하는 정보전송장치.
KR1020027007528A 1999-12-29 2000-12-29 쿼드펌핑 버스 아키텍처 및 프로토콜 KR100565101B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/474,058 US6609171B1 (en) 1999-12-29 1999-12-29 Quad pumped bus architecture and protocol
US09/474,058 1999-12-29

Publications (2)

Publication Number Publication Date
KR20020089308A true KR20020089308A (ko) 2002-11-29
KR100565101B1 KR100565101B1 (ko) 2006-03-30

Family

ID=23882019

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027007528A KR100565101B1 (ko) 1999-12-29 2000-12-29 쿼드펌핑 버스 아키텍처 및 프로토콜

Country Status (16)

Country Link
US (6) US6609171B1 (ko)
EP (2) EP1881414A3 (ko)
JP (1) JP4194274B2 (ko)
KR (1) KR100565101B1 (ko)
CN (4) CN1230762C (ko)
AT (1) ATE377797T1 (ko)
AU (1) AU2463101A (ko)
BR (1) BRPI0016834B1 (ko)
DE (2) DE60037036T2 (ko)
GB (1) GB2374264B (ko)
HK (1) HK1046964B (ko)
RU (1) RU2271566C2 (ko)
SG (2) SG123609A1 (ko)
TW (1) TW559704B (ko)
WO (1) WO2001048621A1 (ko)
ZA (1) ZA200203946B (ko)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6965648B1 (en) * 2000-05-04 2005-11-15 Sun Microsystems, Inc. Source synchronous link integrity validation
US6745268B1 (en) * 2000-08-11 2004-06-01 Micron Technology, Lnc. Capacitive multidrop bus compensation
US6678767B1 (en) * 2000-10-06 2004-01-13 Broadcom Corp Bus sampling on one edge of a clock signal and driving on another edge
US6816932B2 (en) * 2000-10-06 2004-11-09 Broadcom Corporation Bus precharge during a phase of a clock signal to eliminate idle clock cycle
US6993612B2 (en) * 2000-12-07 2006-01-31 Micron Technology, Inc. Arbitration method for a source strobed bus
US6901475B2 (en) * 2000-12-07 2005-05-31 Micron Technology, Inc. Link bus for a hub based computer architecture
US7676588B2 (en) * 2001-10-05 2010-03-09 International Business Machines Corporation Programmable network protocol handler architecture
DE50113128D1 (de) * 2001-12-03 2007-11-22 Infineon Technologies Ag Datenübertragungseinrichtung
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
US6983348B2 (en) * 2002-01-24 2006-01-03 Intel Corporation Methods and apparatus for cache intervention
US7085889B2 (en) * 2002-03-22 2006-08-01 Intel Corporation Use of a context identifier in a cache memory
EP1512079B1 (en) * 2002-05-24 2019-02-27 Intel Corporation Pseudo multiport data memory has stall facility
AU2003240948A1 (en) * 2002-05-28 2003-12-12 Cadence Design Systems, Inc. Assertion-based transaction recording
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
TW579467B (en) * 2002-07-24 2004-03-11 Via Tech Inc Method for blocking request to bus
US7200730B2 (en) * 2002-09-16 2007-04-03 Texas Instruments Incorporated Method of operating a memory at high speed using a cycle ready status output signal
US6956789B2 (en) * 2002-09-16 2005-10-18 Texas Instruments Incorporated Cycle ready circuit for self-clocking memory device
US7234034B2 (en) * 2002-09-16 2007-06-19 Texas Instruments Incorporated Self-clocking memory device
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7051229B2 (en) * 2002-12-03 2006-05-23 Alcatel Canada Inc. Logical bus overlay for increasing the existing system bus data rate
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
US20040117708A1 (en) * 2002-12-16 2004-06-17 Ellis David G. Pre-announce signaling for interconnect built-in self test
US6922769B2 (en) * 2002-12-23 2005-07-26 Intel Corporation Apparatus and method for reduction of power consumption in OS that use flat segmentation memory model
US20040153611A1 (en) * 2003-02-04 2004-08-05 Sujat Jamil Methods and apparatus for detecting an address conflict
US7054988B2 (en) * 2003-04-17 2006-05-30 Lsi Logic Corporation Bus interface for processor
US7478025B1 (en) * 2003-04-18 2009-01-13 Unisys Corporation System and method to support dynamic partitioning of units to a shared resource
US20040230188A1 (en) * 2003-05-12 2004-11-18 Iulian Cioanta Treatment catheters with thermally insulated regions
US7287126B2 (en) * 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7113000B2 (en) * 2003-12-10 2006-09-26 Hewlett-Packard Development Company, L.P. Bus agent having multiple reference levels
US7178048B2 (en) * 2003-12-23 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for signal synchronization based on plural clock signals
US7057414B2 (en) * 2004-01-07 2006-06-06 International Business Machines Corporation Avoiding oscillation in self-synchronous bi-directional communication system
US20050262376A1 (en) * 2004-05-21 2005-11-24 Mcbain Richard A Method and apparatus for bussed communications
US7539800B2 (en) * 2004-07-30 2009-05-26 International Business Machines Corporation System, method and storage medium for providing segment level sparing
US7224595B2 (en) * 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7296129B2 (en) * 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US20060036826A1 (en) * 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier
US20060075164A1 (en) * 2004-09-22 2006-04-06 Ooi Eng H Method and apparatus for using advanced host controller interface to transfer data
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7441060B2 (en) * 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
TWI304935B (en) * 2004-11-02 2009-01-01 Via Tech Inc Method for determining data transmission specification and combination of bridge chipset and memory used in the same
TWI256558B (en) * 2004-11-02 2006-06-11 Via Tech Inc Method for coordinating bus data transmission specification and CPU and bridge chip used in the same
TWI268427B (en) * 2004-11-02 2006-12-11 Via Tech Inc Coordinating method of bus data transmission specification
US20060171233A1 (en) * 2005-01-18 2006-08-03 Khaled Fekih-Romdhane Near pad ordering logic
US20060161743A1 (en) * 2005-01-18 2006-07-20 Khaled Fekih-Romdhane Intelligent memory array switching logic
US7340568B2 (en) * 2005-02-11 2008-03-04 International Business Machines Corporation Reducing number of rejected snoop requests by extending time to respond to snoop request
KR100606244B1 (ko) * 2005-02-11 2006-07-28 삼성전자주식회사 데이터 스트로브 신호에 동기 되어 전송되는 데이터의 캡쳐 방법 및 이를 위한 데이터 캡쳐 회로
US7529955B2 (en) 2005-06-30 2009-05-05 Intel Corporation Dynamic bus parking
CN100461142C (zh) * 2005-07-05 2009-02-11 威盛电子股份有限公司 微处理器、处理器总线系统、及执行稀疏写入处理的方法
US7543094B2 (en) * 2005-07-05 2009-06-02 Via Technologies, Inc. Target readiness protocol for contiguous write
US7457901B2 (en) * 2005-07-05 2008-11-25 Via Technologies, Inc. Microprocessor apparatus and method for enabling variable width data transfers
US7441064B2 (en) * 2005-07-11 2008-10-21 Via Technologies, Inc. Flexible width data protocol
US7502880B2 (en) * 2005-07-11 2009-03-10 Via Technologies, Inc. Apparatus and method for quad-pumped address bus
CN100435123C (zh) * 2005-07-19 2008-11-19 威盛电子股份有限公司 用于稀疏线写操作的装置和方法
US7444472B2 (en) * 2005-07-19 2008-10-28 Via Technologies, Inc. Apparatus and method for writing a sparsely populated cache line to memory
US7590787B2 (en) * 2005-07-19 2009-09-15 Via Technologies, Inc. Apparatus and method for ordering transaction beats in a data transfer
US7444448B2 (en) * 2005-08-03 2008-10-28 Via Technologies, Inc. Data bus mechanism for dynamic source synchronized sampling adjust
US20070073977A1 (en) * 2005-09-29 2007-03-29 Safranek Robert J Early global observation point for a uniprocessor system
US7634609B2 (en) * 2005-09-29 2009-12-15 Via Technologies, Inc. Data transmission coordinating method
US7757031B2 (en) * 2005-10-24 2010-07-13 Via Technologies, Inc. Data transmission coordinating method and system
US7478259B2 (en) * 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7594055B2 (en) * 2006-05-24 2009-09-22 International Business Machines Corporation Systems and methods for providing distributed technology independent memory controllers
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7581073B2 (en) * 2006-08-09 2009-08-25 International Business Machines Corporation Systems and methods for providing distributed autonomous power management in a memory system
US20080062892A1 (en) * 2006-09-07 2008-03-13 Honeywell International Inc. High speed bus protocol with programmable scheduler
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7477522B2 (en) * 2006-10-23 2009-01-13 International Business Machines Corporation High density high reliability memory module with a fault tolerant address and command bus
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
KR20080047027A (ko) * 2006-11-24 2008-05-28 주식회사 하이닉스반도체 반도체 메모리 장치 및 그 구동 방법
KR100903381B1 (ko) * 2006-11-24 2009-06-23 주식회사 하이닉스반도체 반도체 메모리 장치 및 그의 구동 방법
KR100915811B1 (ko) * 2006-12-07 2009-09-07 주식회사 하이닉스반도체 반도체 메모리 장치의 데이터 입출력 제어 신호 생성 회로
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US20090132747A1 (en) * 2007-11-19 2009-05-21 International Business Machines Corporation Structure for universal peripheral processor system for soc environments on an integrated circuit
US8139697B2 (en) * 2008-01-29 2012-03-20 United Microelectronics Corp. Sampling method and data recovery circuit using the same
US8020167B2 (en) * 2008-05-05 2011-09-13 Dell Products L.P. System and method for automatic throttling of resources in an information handling system chassis
KR101642833B1 (ko) * 2010-02-05 2016-07-26 삼성전자주식회사 클럭 임베디드 인터페이스 방법, 그 방법을 이용하는 송수신기 및 디스플레이 장치
WO2012127599A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 入出力制御装置,情報処理システム,及びログ採取プログラム
US8312176B1 (en) * 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8683096B2 (en) * 2012-06-27 2014-03-25 Intel Corporation Configuration of data strobes
US20140233582A1 (en) * 2012-08-29 2014-08-21 Marvell World Trade Ltd. Semaphore soft and hard hybrid architecture
US9755818B2 (en) * 2013-10-03 2017-09-05 Qualcomm Incorporated Method to enhance MIPI D-PHY link rate with minimal PHY changes and no protocol changes
CN105390982B (zh) * 2015-11-24 2018-07-17 国家电网公司 基于仿生视觉分析的输电设备总线型评价系统

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763243A (en) * 1984-06-21 1988-08-09 Honeywell Bull Inc. Resilient bus system
US4858173A (en) * 1986-01-29 1989-08-15 Digital Equipment Corporation Apparatus and method for responding to an aborted signal exchange between subsystems in a data processing system
JPS62280948A (ja) * 1986-05-29 1987-12-05 Fanuc Ltd バス調停方式
US5341487A (en) * 1991-12-20 1994-08-23 International Business Machines Corp. Personal computer having memory system with write-through cache and pipelined snoop cycles
US5280587A (en) * 1992-03-31 1994-01-18 Vlsi Technology, Inc. Computer system in which a bus controller varies data transfer rate over a bus based on a value of a subset of address bits and on a stored value
US5469547A (en) * 1992-07-17 1995-11-21 Digital Equipment Corporation Asynchronous bus interface for generating individual handshake signal for each data transfer based on associated propagation delay within a transaction
JP3369227B2 (ja) * 1992-11-09 2003-01-20 株式会社東芝 プロセッサ
TW255022B (ko) 1993-06-30 1995-08-21 Intel Corp
US5615343A (en) 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US5568620A (en) 1993-06-30 1996-10-22 Intel Corporation Method and apparatus for performing bus transactions in a computer system
US5550988A (en) * 1994-03-01 1996-08-27 Intel Corporation Apparatus and method for performing error correction in a multi-processor system
GB2324230B (en) 1994-03-01 1998-12-16 Intel Corp High performance symmetric arbitration protocol with support for I/O requirements
US5784579A (en) * 1994-03-01 1998-07-21 Intel Corporation Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth
BR9506997A (pt) 1994-03-01 1997-11-18 Intel Corp Arquitetura de barramento altamente canalizada
TW400483B (en) 1994-03-01 2000-08-01 Intel Corp High performance symmetric arbitration protocol with support for I/O requirements
US5548733A (en) 1994-03-01 1996-08-20 Intel Corporation Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system
US5572703A (en) * 1994-03-01 1996-11-05 Intel Corporation Method and apparatus for snoop stretching using signals that convey snoop results
US5535340A (en) * 1994-05-20 1996-07-09 Intel Corporation Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
US6029217A (en) * 1994-10-03 2000-02-22 International Business Machines Corporation Queued arbitration mechanism for data processing system
US5596729A (en) * 1995-03-03 1997-01-21 Compaq Computer Corporation First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus
US5925099A (en) * 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US5710906A (en) * 1995-07-07 1998-01-20 Opti Inc. Predictive snooping of cache memory for master-initiated accesses
KR0164395B1 (ko) * 1995-09-11 1999-02-18 김광호 반도체 메모리 장치와 그 리이드 및 라이트 방법
US5696910A (en) * 1995-09-26 1997-12-09 Intel Corporation Method and apparatus for tracking transactions in a pipelined bus
US5812803A (en) * 1995-09-29 1998-09-22 Intel Corporation Method and apparatus for controlling data transfers between a bus and a memory device using a multi-chip memory controller
US5948094A (en) 1995-09-29 1999-09-07 Intel Corporation Method and apparatus for executing multiple transactions within a single arbitration cycle
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5838995A (en) * 1995-12-18 1998-11-17 International Business Machines Corporation System and method for high frequency operation of I/O bus
US5802132A (en) * 1995-12-29 1998-09-01 Intel Corporation Apparatus for generating bus clock signals with a 1/N characteristic in a 2/N mode clocking scheme
WO1997030399A1 (en) * 1996-02-20 1997-08-21 Intergraph Corporation High-availability super server
JP3643425B2 (ja) * 1996-02-29 2005-04-27 富士通株式会社 データ処理方法、データ処理装置及びインターフェイスコントローラ
WO1998010350A1 (en) * 1996-09-06 1998-03-12 Intel Corporation A data flow control mechanism for a bus supporting two-and three-agent transactions
US5867728A (en) * 1996-12-17 1999-02-02 Compaq Computer Corp. Preventing corruption in a multiple processor computer system during a peripheral device configuration cycle
US6012118A (en) 1996-12-30 2000-01-04 Intel Corporation Method and apparatus for performing bus operations in a computer system using deferred replies returned without using the address bus
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus
US6065101A (en) * 1997-06-12 2000-05-16 International Business Machines Corporation Pipelined snooping of multiple L1 cache lines
US6336159B1 (en) 1997-06-25 2002-01-01 Intel Corporation Method and apparatus for transferring data in source-synchronous protocol and transferring signals in common clock protocol in multiple agent processing system
US5919254A (en) * 1997-06-25 1999-07-06 Intel Corporation Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
US5991855A (en) * 1997-07-02 1999-11-23 Micron Electronics, Inc. Low latency memory read with concurrent pipe lined snoops
US5978869A (en) 1997-07-21 1999-11-02 International Business Machines Corporation Enhanced dual speed bus computer system
US6108736A (en) * 1997-09-22 2000-08-22 Intel Corporation System and method of flow control for a high speed bus
US5964856A (en) * 1997-09-30 1999-10-12 Intel Corporation Mechanism for data strobe pre-driving during master changeover on a parallel bus
US6260091B1 (en) * 1997-10-20 2001-07-10 Intel Corporation Method and apparatus for performing out-of-order bus operations in which an agent only arbitrates for use of a data bus to send data with a deferred reply
US6092156A (en) 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
KR100255664B1 (ko) 1997-12-29 2000-05-01 윤종용 반도체 집적회로의 클락 포워딩 회로 및 클락포워딩 방법
US6006291A (en) * 1997-12-31 1999-12-21 Intel Corporation High-throughput interface between a system memory controller and a peripheral device
US6041380A (en) * 1998-01-21 2000-03-21 Micron Electronics, Inc. Method for increasing the number of devices capable of being operably connected to a host bus
US6223238B1 (en) * 1998-03-31 2001-04-24 Micron Electronics, Inc. Method of peer-to-peer mastering over a computer bus
US6172937B1 (en) * 1998-05-13 2001-01-09 Intel Corporation Multiple synthesizer based timing signal generation scheme
US6108721A (en) * 1998-06-29 2000-08-22 Hewlett-Packard Company Method and apparatus for ensuring data consistency between an i/o channel and a processor
US6275890B1 (en) * 1998-08-19 2001-08-14 International Business Machines Corporation Low latency data path in a cross-bar switch providing dynamically prioritized bus arbitration
US6205506B1 (en) * 1998-08-25 2001-03-20 Stmicroelectronics, Inc. Bus interface unit having multipurpose transaction buffer
US6449677B1 (en) * 1998-09-03 2002-09-10 Compaq Information Technologies Group, L.P. Method and apparatus for multiplexing and demultiplexing addresses of registered peripheral interconnect apparatus
US6102118A (en) * 1998-12-30 2000-08-15 Moore; Curt A. Multi-purpose adjustable centralizer system with tool
TW514788B (en) * 1999-04-23 2002-12-21 Via Tech Inc Method of delayed transaction in bus system and device using the method
US6272604B1 (en) * 1999-05-20 2001-08-07 International Business Machines Corporation Contingent response apparatus and method for maintaining cache coherency
US6487621B1 (en) * 1999-08-17 2002-11-26 Compaq Information Technologies Group, L.P. Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle
US6615323B1 (en) * 1999-09-02 2003-09-02 Thomas Albert Petersen Optimizing pipelined snoop processing
US6591321B1 (en) * 1999-11-09 2003-07-08 International Business Machines Corporation Multiprocessor system bus protocol with group addresses, responses, and priorities
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6681293B1 (en) * 2000-08-25 2004-01-20 Silicon Graphics, Inc. Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries
US6901475B2 (en) * 2000-12-07 2005-05-31 Micron Technology, Inc. Link bus for a hub based computer architecture
US6651122B2 (en) * 2000-12-07 2003-11-18 Micron Technology, Inc. Method of detecting a source strobe event using change detection

Also Published As

Publication number Publication date
EP1881414A2 (en) 2008-01-23
US6880031B2 (en) 2005-04-12
EP1242898A1 (en) 2002-09-25
DE10085385T1 (de) 2002-12-19
DE60037036D1 (de) 2007-12-20
CN1415095A (zh) 2003-04-30
DE60037036T2 (de) 2008-08-21
CN100375075C (zh) 2008-03-12
RU2002120499A (ru) 2004-03-10
KR100565101B1 (ko) 2006-03-30
CN1230762C (zh) 2005-12-07
US6807592B2 (en) 2004-10-19
JP2003518693A (ja) 2003-06-10
HK1046964B (zh) 2004-07-23
CN1815463B (zh) 2014-03-05
CN1558337A (zh) 2004-12-29
US6907487B2 (en) 2005-06-14
TW559704B (en) 2003-11-01
GB2374264A (en) 2002-10-09
HK1046964A1 (en) 2003-01-30
EP1881414A3 (en) 2008-07-30
EP1242898B1 (en) 2007-11-07
RU2271566C2 (ru) 2006-03-10
US20010037421A1 (en) 2001-11-01
US6804735B2 (en) 2004-10-12
SG123609A1 (en) 2006-07-26
US20010037424A1 (en) 2001-11-01
BR0016834A (pt) 2002-09-10
CN1900924B (zh) 2010-05-12
US20020029307A1 (en) 2002-03-07
US6601121B2 (en) 2003-07-29
WO2001048621A1 (en) 2001-07-05
GB0216035D0 (en) 2002-08-21
SG123610A1 (en) 2006-07-26
BRPI0016834B1 (pt) 2015-08-11
CN1815463A (zh) 2006-08-09
JP4194274B2 (ja) 2008-12-10
DE10085385B3 (de) 2011-12-08
ATE377797T1 (de) 2007-11-15
AU2463101A (en) 2001-07-09
US6609171B1 (en) 2003-08-19
US20020038397A1 (en) 2002-03-28
ZA200203946B (en) 2003-01-02
CN1900924A (zh) 2007-01-24
GB2374264B (en) 2004-04-07
US20020147875A1 (en) 2002-10-10

Similar Documents

Publication Publication Date Title
KR100565101B1 (ko) 쿼드펌핑 버스 아키텍처 및 프로토콜
US6363439B1 (en) System and method for point-to-point serial communication between a system interface device and a bus interface device in a computer system
KR100360064B1 (ko) 고도로파이프라인된버스구조
US5822767A (en) Method and apparartus for sharing a signal line between agents
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
EP1046111B1 (en) Data transferring in source-synchronous and common clock protocols
EP0817089B1 (en) Processor subsystem for use with a universal computer architecture
EP1032880B1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
KR100263633B1 (ko) 각종프로세서와버스프로토콜에적용가능한범용구조를제공하는컴퓨터시스템
WO1994008303A1 (en) Method and apparatus for non-snoop window reduction
US20020152343A1 (en) Arbitration method for a source strobed bus
JPH0330045A (ja) マイクロプロセツサ用論理回路
AU688718B2 (en) Signaling protocol conversion between a processor and a high-performance system bus
US20020157062A1 (en) Checkerboard parity techniques for a multi-pumped bus
US5764932A (en) Method and apparatus for implementing a dual processing protocol between processors
US6263389B1 (en) Apparatus for increasing the number of loads supported by a host bus
WO1998010350A1 (en) A data flow control mechanism for a bus supporting two-and three-agent transactions
JPH1185674A (ja) Pciバス間におけるトランザクション通信方法及びコンピュータ・システム

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
FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee