KR20020069012A - 통신 버스에서의 차동 스트로빙 방법 및 장치 - Google Patents

통신 버스에서의 차동 스트로빙 방법 및 장치 Download PDF

Info

Publication number
KR20020069012A
KR20020069012A KR1020027008568A KR20027008568A KR20020069012A KR 20020069012 A KR20020069012 A KR 20020069012A KR 1020027008568 A KR1020027008568 A KR 1020027008568A KR 20027008568 A KR20027008568 A KR 20027008568A KR 20020069012 A KR20020069012 A KR 20020069012A
Authority
KR
South Korea
Prior art keywords
strobe
bus
data
signal
data transfer
Prior art date
Application number
KR1020027008568A
Other languages
English (en)
Other versions
KR100593787B1 (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 KR20020069012A publication Critical patent/KR20020069012A/ko
Application granted granted Critical
Publication of KR100593787B1 publication Critical patent/KR100593787B1/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/4213Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with asynchronous 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)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

마이크로프로세서 시스템내의 제 1 데이터 전송과 제 2 데이터 전송 사이에서 적절한 스크로브의 사전 및 사후 구동을 보장하는 방법. 상기 방법은 제 1 스트로브 신호 및 제 2 스트로브 신호를 생성하는 단계, 제 1 데이터 전송이전에 상기 제 1 및 제 2 스트로브 신호 중 하나를 사후 구동하는 단계, 상기 사전 구동된 신호를 사후 구동하는 단계, 상기 제 1 및 제 2 스트로브 신호중 어느 것이 사후 구동될지를 판정하는 단계, 및 제 2 데이터 전송 이전에 상기 제 1 및 제 2 스트로브 신호중 하나를 사전 구동하는 단계를 포함하는 것을 특징으로 하는 방법.

Description

통신 버스에서의 차동 스트로빙 방법 및 장치{METHOD AND APPARATUS FOR DIFFERENTIAL STROBING IN A COMMUNICATIONS BUS}
다중 프로세서 시스템은 여러개의 프로세서가 병렬로 동작하기 때문에 시스템의 성능을 향상시킨다. 종래의 다중프로세서 시스템은 통신 버스에 부착된 다수의 프로세서를 가진다. 각각의 프로세서가 한번에 하나의 버스만을 사용할 수 있지만, 버스 프로토콜은 버스의 사용을 최적화시키도록 개발되었다.
이러한 다중 프로세서 시스템에서, 통신 버스의 일부인 데이터 버스는 모든 정보의 교환이 이 버스를 통해서 이루어지기 때문에 가장 중요한 리소스중의 하나이다. 따라서, 데이터 버스를 효과적으로 사용하는 것은 중요하다. 다중 프로세서 시스템에서, 데이터는 소정의 클록킹 스킴에 따라서 프로세서에서 프로세서로 전송된다. 시스템 버스 클록은 송신 프로세서로부터 수신 프로세서로 데이터를 클록하는 것이 전형적이다. 결론적으로, 한 프로세서로부터 다른 프로세서로 데이터를 전송하는데는 시스템 버스 클록의 하나의 완전한 클록 사이클이 걸린다. 데이터는 데이터 전송의 속도를 높이기 위해서 소스 동기화 방식으로 전송될 수 있다. 소스 동기화 전송에서 있어서, 데이터 전송은, 전형적으로 시스템 버스 클록의 주기보다 더 짧은 고속 전송 클록에 따라 두개의 차동 스크로브에 의해 제공되는 액티브 엣지와 같은 위상 천이된 두개의 차동 스트로브 신호에 의해 클록되는 것이 전형적이다. 이들 스트로브는 데이터를 래치하기 위해 수신 프로세서에 의해 사용된다.
차동 스트로브 신호는 액티브 로우 및 액티브 하이 스트로브 모두가 사용된다는 것을 의미한다. 이는 스트로브중의 하나가 정상상태 논리 1의 값으로부터 및 정상상태 논리 1의 값으로 사전 및 사후에 구동될 것을 요구하기 때문에 액티브 로우 버스에서의 복잡성을 증가시킨다. 또한, 스트로브의 사전 및 사후 구동은 적절한 데이터 캡쳐를 보장하고, 다음 데이터 전송동안 스트로브가 사전에 구동될 필요가 있는지를 결정하기 위해 수신 프로세서에서 고려될 필요가 있다. 이 차동 다중 프로세서 어프로치와 관련된 중요한 문제는, 버스 소유자의 변화에 따라, 즉 다른 프로세서가 전송 프로세서 또는 "마스터"가 되어서 데이터 버스의 역할을 수행하게 될 때의 연속적인 데이터 전송이다.
따라서, 정확하게 데이터를 캡쳐링하는 것은 물론 사전 및 사후에 적절한 스트로브가 구동되도록 스트로브 위상 트래킹용 메카니즘을 가지는 것이 기술에 요구된다.
본 발명은 통신 버스 상에서의 데이터 전송에 관한 것이다. 상세하게는, 본 발명은 통신 버스 상에서의 마스터 전환동안 스트로브 위상을 전환하는 것과 관련된다.
본 발명의 이점은 하기의 상세한 설명 및 첨부된 도면을 참조함으로써 당업자에게는 용이하게 이해될 것이다.
도 1은 컴퓨팅 시스템의 전형적인 블록도,
도 2는 도 1의 컴퓨팅 시스템의 전형적인 타이밍 도,
도 3은 본 발명의 일 실시예에 따른 타이밍을 도시한 타이밍 도,
도 4는 본 발명의 일 실시예에 따른 프로세서의 블록도,
도 5는 본 발명의 일실시예에 따른 버스 컨트롤러의 블록도.
본 발명은 컴퓨팅 시스템에서 제 1 데이터 전송 및 제 2 데이터 전송 사이에 적절한 스트로브를 사전 및 사후 구동시키는 것을 보장하는 방법 및 장치에 관한것이다. 이 방법은 제 1 스트로브 신호 및 제 2 스트로브 신호를 생성하는 단계, 상기 제 1 및 제 2 스트로브 신호중의 하나를 제 1 데이터 전송 이전에 사전-구동하는 단계, 상기 제 1 및 제 2 스트로브 신호중 어느 것이 사후-구동될 지를 결정하는 단계, 제 2 데이터 전송 이전에 상기 제 1 및 제 2 스트로브 신호중 하나를 사후-구동하는 단계를 포함한다.
통신 버스에서 마스터의 교환 동안, 사전 구동 및 사후 구동하는 스트로브를 결정하는 스트로브 위상 트래킹 메카니즘의 실시예가 개시된다. 스트로브 위상 트래킹 메카니즘은 통신 버스상에 유효 데이터 전송을 제공하는 적절한 스트로브가 어써트(assert)되는 것을 가능하게 한다.
하기의 설명에서, 설명을 목적으로 본 발명의 완전한 이해를 제공하기 위해 다수의 실시예가 설명된다. 그러나, 이들 특정 실시는 본 발명을 구현하기 위해 요구되지 않는다는 것이 당업자에게는 자명할 것이다. 다른 실시예에서, 공지된 전기 구조체 및 회로가 본 발명을 불필요하게 불명료하게 하지 않기 위해 블록도의 형태로 도시된다.
도 1은 본 발명의 실시예에서 사용될 수 있는 다중 프로세서 컴퓨터 시스템의 블록도이다. 컴퓨터 시스템(10)은 버스(101)에 연결된 상이한 프로세서 사이의 통신을 위한 프로세서 메모리 버스(101)를 포함한다. 버스 브리지, 메모리 디바이스, 주변 기기등과 같은 에이전트가 프로세서 메모리 버스(101)에 더 연결된다. 프로세서 메모리 버스(101)는 아비트레이션, 어드레스, 데이터 및 컨트롤 버스(도시생략)를 포함한다. 일 실시예에서, 프로세서 각각(102, 103, 104, 105)은 데이터 및 명령어를 자체의 관련된 프로세서와 같은 집적회로에 일시적으로 저장하기 위해, 레벨 원(L1) 캐시 메모리로 통상적으로 간주되는 소형, 초고속 캐시 메모리(도시생략)를 포함한다. 더욱이, 대형 레벨 투(L2) 캐시 메모리(106)가 프로세서(105)에 의해 사용되는 데이터 및 명령어를 일시적으로 저장하기 위해 프로세서(105)에 연결된다. 다른 실시예에서, 메모리(106)과 같은 L2캐시는 프로세서(102~105)중의 임의의 하나에 연결될 수 있다.
프로세서 메모리 버스(101)는 메모리 및 입력/출력(I/O)서브시스템으로의 액세스를 제공한다. 메모리 컨트롤러(122)는 랜덤 액세스 메모리(RAM) 또는 기타 다이나믹 저장 장치(121:통상적으로 메인 메모리로 간주됨)로의 액세스를 컨트롤하고, 프로세서(102~105)용 정보 및 명령어를 저장하기 위해 프로세서 메모리 버스(101)에 연결된다. 디스플레이 디바이스(132), 키보드 디바이스(133), 커서 컨트롤 디바이스(134), 하드 카피 디바이스(135) 및 대용량 저장 장치(136)가 버스 브리지(124)를 통해서 시스템(I/O)버스(131) 및 프로세서 메모리 버스(101)에 연결된다. 브리지(124)는 프로세서 메모리 버스(101) 및 시스템 I/O버스(131)에 연결되어서, 다른 버스 상의 디바이스사이의 데이터의 액세스 또는 전송을 위해 프로세서 메모리 버스(101) 또는 I/O버스(131)상의 디바이스용 통신 경로 또는 게이트 웨이를 제공한다. I/O버스(131)는 주변 기기(132~136)사이에서 정보를 통신시킨다.
프로세서(102~105), 버스 브리지(124), 대용량 저장 장치(125) 및 메모리 컨트롤러(122)는 각각 버스 컨트롤러(138)를 포함한다. 버스 컨트롤러(138)는 프로세서 또는 프로세서를 포함하는 에이전트가 프로세서-메모리 버스(101)를 제어할 때, 프로세서-메모리 버스(101)상의 통신을 제어한다.
도 2는 공통 클록 트랜잭션 동안, 버스 상에서 일어나는 것을 도시하는 타이밍 도이다. 타이밍 도에서 사각형은 신호가 구동되는 것을 나타내고, 원은 신호가 샘플링되는(래치되거나 캡쳐되는) 것을 나타내고, 삼각형은 신호가 수신되거나 관측되는 것을 나타낸다. 여기서 사용될 때, 용어 "어써트되는"이란 신호가 액티브 레벨로 구동되는 것을 나타내고, 용어 "디어써트되는"이란 신호가 인액티브 논리 레벨로 구동되는 것을 나타낸다.
버스 클록 신호(BCLK)는 상승 엣지에서 액티브이다. 클록 사이클(T1)의 시작점에서, 신호(A)는 버스에 어써트된다. T2의 시작시에 BCLK는 신호(A)를 래치한다. T3의 시작시에 신호(B)는 신호(A)의 래치에 응답해서 어써트된다. 신호(A)는 T2에서 비활성 상태인 그 원래의 상태로 변화한다. 도 2에 도시된 바와 같이 신호(B)는신호(A)가 어써트된 이후에 두개의 BCLK사이클에서 신호(A)에 응답해서 어써트된다.
도 3은 본 발명의 일실시예에 따른 소스 동기 데이터 전송을 도시한 타이밍 도이다. INTCLK 신호는 다른 신호를 동기화시키고, 데이터 버스상의 데이터를 클록시키기 위해 사용되는 프로세서내의 대표 클록이다. INTCLK는 다양한 신호사이의 관계를 나타내도록 도시되었다. BLCK 신호는 도시된 바와 같이 버스상의 클록이고, 임의의 방식으로 INTCLK와 동기화된 것이 전형적이다. 이 실시예에서, INTCLK신호는 BLCK신호보다 두배 더 빠르다. DATA 신호는 도시된 바와 같이 버스상에서의 신호이다. 데이터는 버스 에이전트중의 임의의 것에 의해 구동되지 않을 때, 임피던스가 높아지고, 도 3의 INTCLK(1A, 3B, 4A, 7B, 8A 및 8B)에 도시된 바와 같이, 논리(1)의 값으로 남는다.
STBp 및 STBn은 버스상의 데이터를 구동하기 위해 사용되는 두개의 스트로브 신호이다. STBp 및 STBn 신호는 데이터 전송을 동기화시키기 위해 사용된다. 임의의 수신 버스 에이전트 또는 프로세서는 데이터를 래치하기 위해 STBp 및 STBn 신호를 사용할 수 있다. 데이터를 스트로브하기 위해 (하나 대신에) 두개의 스트로브 신호를 사용함으로써 단일 스트로브 어프로치와 관련된 지터링 문제를 해결한다. 두개의 스트로브 신호를 사용하는 것의 다른 이점은 공통 모드 신호 노이즈 문제의 감소이다. 게다가, 하나의 스트로브 만으로는 버스 클록을 두배 더 빠른 속도로 버스상의 데이터를 클록킹하는 것은 어렵다.
STBp 및 STBn 신호는 위상 천이가 모든 클록에서 발생하지 않았지만, 서로천이된 위상이다. 위상을 천이시킴으로써 즉, BLCK 신호의 절반과 동일한 양만큼 하나의 신호의 에지를 천이시킴으로써, 데이터를 얻기 위해 STBp 및 STBn모두를 시험할 수 있다. 위상 천이의 중요성은 STBp 및 STBn 모두에서 변화가 있을 때, DATA가 유효하다는 것이다. STBp 및 STBn중 어느 것이 포지티브-진행(positive-going)이고, 어느 것이 네거티브-진행(negative-going)인지는 중요하지 않다.
이 상보형 에지 특성을 가지기 위해, 데이터 스트로브 신호중의 하나는 데이터가 실제로 스트로브되기 전에 어써트된다. 전형적으로, 이 어써션은 도 3에 도시된 바와 같이 데이터 유효 윈도의 중신에서 발생하는 스트로브의 제 1 크로싱이전의 1과 2분의 1 버스 클록이다. 이 초기 어써션은 도시된 바와 같이, STBp의 INTCLK 신호(1A)로부터 및 STBn의 INTCLK 신호(4A)로부터의 "사전-구동"으로 간주된다. 이후에, 다음 클록에서, 다른 데이터 스트로브는 사전-구동 데이터 스트로브가 토글하는 순간에 어써트된다. 사전 구동 특성을 가지고 데이터 자체가 유효할 때, 두개의 데이터 스트로브는 한쌍의 상보형 에지를 형성한다. 계속해서, 두개의 데이터 스트로브는 데이터에 대응하는 정상 프로세스에서 토글한다.
이와 같이, 사전 구동으로 에지 상보형 데이터 스트로브를 제공함으로써, 더 빠른 전송 속도가 달성된다. 도 3에서, 내부 클록은 버스 클록보다 두배 더 빠르다. 사전-구동 듀얼 데이터 스트로브를 가지고, 데이터는 보통 속도의 두배로 전송될 수 있다: 하나의 버스 클록에서 두개의 데이터가 유용하다. 본 발명의 실시예에 따라서, 스트로브 신호 중 하나는 데이터 전송이 종료될 때마다, 스트로브 신호 중 하나가 사후 구동된다(즉, 사전 구동, 전송, 사후 구동). 전환은 다른 프로세서나에이전트가 버스를 제어하는 것으로 정의된다. 또한, 전환은 일 프로세서의 사후구동이 다른 프로세서의 사전 드라이브와 같은 버스클록에 있을 때의 시간 프레임으로 정의된다.
도 3에 도시된 바와 같이, 내부 신호, 스트로브 이네이블(A1) 및 스트로브 이네이블(A2)은 전송 프로세서의 내부 상태 및 외부 신호에 어떤 영향을 주는가를 나타낸다. 본 발명에 따라서, 이들 신호는 버퍼로부터의 스트로브를 구동하기 위해 전송 프로세서 또는 에이전트의 출력 스트로브 버퍼를 나타낸다. DBSY신호는 데이터 버스 비지(busy) 신호이다. 이 신호는 그것이 데이터 버스를 사용중인지, 사용될 것인지 또는 데이터 버스를 사용했는지를 나타내기 위해 전송 프로세서 또는 에이전트에 의해 어써트된다. SBSY 신호는 스트로브 비지 신호이다. 이 신호는 그것이 데이터 버스를 사용중인지, 사용될 것인지 또는 데이터 버스를 사용했는지를 나타내기 위해 전송 프로세서 또는 에이전트에 의해 어써트된다.
도 3에서, 두개의 스트로브 신호(STBp 및 STBn)는 BCLK의 클록 속도의 두배로 데이터를 클록한다. DATA는 BCLK1의 후반부 동안 또는 INTCLK(1B)동안 유용하다. STBp는 BCLK(1)에서 사전 구동된다. BCLK(1)에서, STBp는 STBn이 로우로 구동되는 동안 하이가 된다. STBp 및 STBn은 각각 버스클록의 속도로 토글을 계속한다.
BCLK3에서, STBp에 의해 초기화 된 블록의 데이터 전송은 종료된다. 다음 데이터 전송은 BCLK3 및 BCLK4를 커버하는 (데이터의 전송상의) 하나의 대드 클록 이후에 이루어진다. 본 발명에 따라서, 올바른 스트로브가 사전 구동되고, 잘못 래치된 입력 데이터는 무시되는 이벤트의 시퀀스가 발생한다. 전송 프로세서의 거래의끝에서, 전송 프로세서는 트랜잭션을 완성하고, 올바른 스트로브를 사후 구동한다. 도 3에 도시된 바와 같이, STBn은 BCLK4에서 데이터를 사전 구동한다. 이후에, STBp가 클록4에서 토글하는 순간에 BCLK4에서 STBn은 토글할 것이고, 다음 데이터 전송에서 데이터의 클록킹을 개시할 것이다.
도 4는 본 발명의 일실시예에 따라서, 더 상세하게 프로세서 또는 에이전트를 나타낸 블록도이다. 에이전트(102)는 내부 제어 및 데이터 경로 로직(407), 버스 컨트롤러(138), 데이터 버퍼(401, 402) 및 스트로브 버퍼(403~406)이다.
하기 설명되는 바와 같이, 버스 컨트롤러(138)는, 그것을 포함하는 프로세서 또는 에이전트가 버스를 제어할 때, 버스(101)상의 통신을 제어한다. 내부 제어 및 데이터 경로 로직(407)은 프로세서의 코어로서 동작한다. 에이전트(102)는 또한 데이터 버퍼(401, 402)의 세트를 포함할 수 있다. 데이터 버퍼(401)는 입력 버퍼가 될 수 있고, 데이터 퍼버(402)는 출력 버퍼가 될 수 있다. 그러나, 대안의 실시예는 더 많거나 더 적은 데이터 버퍼를 가질 수 있고, 혹은 두개의 상이한 버퍼를 가지기 보다는 입력 및 출력 모두를 위해 사용될 수 있는 데이터 버퍼를 포함할 수 있다.
데이터 버퍼(402)는 버스(101)의 데이터 라인(101a)을 통해서 프로세서(120)으로부터 다른 프로세서로 전송 중인 데이터를 일시적으로 저장한다. 데이터 버퍼(401)는 버스(101)를 통해서 다른 프로세서로부터 프로세서(120)로 전송중인 데이터를 일시적으로 저장한다.
스트로브 버퍼(403~406)는 STBp 입력 및 출력 버퍼(403, 404) 및 STBn 입력및 출력 버퍼(405, 406)를 각각 포함한다. 스트로브 버퍼는 올바른 스트로브를 출력하기 위해 컨트롤러(138)로부터 신호를 수신한다. 게다가, 스트로브 버퍼는 버스(101)의 스트로브 라인(101c)으로부터 스트로브 신호를 입력하고 수신한다. 컨트롤러(138)는 프로세서가 데이터 버스 및 버스의 스트로브 라인을 사용하기 시작할 때를 나타내기 위해 버스(101)의 컨트롤 라인(101b)으로부터 DBSY 및 SBSY 신호를 수신해서 전송하기도 한다.
도 5는 버스 컨트롤러(138)의 특성의 블록도이다. 버스 컨트롤러(138)는 버스 상태 트래킹 디바이스(500), 데이터 큐 선택기(501), 스트로브 트래킹 디바이스(502), 트랜잭션 타입 트래킹 디바이스(503), 프로세서 상태 트래킹 디바이스(504) 및 구동 이네이블 계산기(505)를 포함한다. 도 5에 도시된 바와 같이, 버스 상태 트래킹 디바이스(500), 데이터 큐 선택기(501) 및 스트로브 위상 트래킹 디바이스(502)는 프로세서(102)가 정보를 수신할 때 동작가능하고, 버스 트래킹 디바이스(504), 트랜잭션 타입 트래킹(503), 프로세서 상태 트래킹 디바이스(504), 구동 이네이블 계산기(504)는 프로세서(102)가 정보를 전송할 때 동작가능하다.
프로세서(102)가 전송 모드로 동작하는 동안, 프로세서(102)는 DBSY 및 SBSY 신호를 어써트한다. 버스 상태 트래킹 디바이스(500)는 버스를 모니터하고, 이들 신호가 어써트되었는지 판정한다. 도 3에 도시된 바와 같이, 이들 신호는 데이터가 구동을 개시하기 전의 버스 클록에서 어써트되는 것이 통상적이고, 데이터가 구동을 정지하기 전의 버스 클록에서 끝나는 것이 통상적이다. 비록 DBSY 및 SBSY 신호가 도 3에 도시된 바와 같이 나타나지만, 이들 신호는 본 발명의 사상 및 범주를벗어나지 않고 많은 다양한 파형을 취할 수 있다. 이들 신호가 어떤 파형을 취하든, 이들 파형은 시스템의 각각의 프로세서 및 에이전트에 의해 인식된다. 본 발명의 다른 실시예에 따라서, 이 두개보다 더 많거나 더 적은 신호가 본 발명의 사상과 범주를 벗어나지 않고 사용될 수 있다.
버스 상태 트래킹 디바이스로부터의 출력은 데이터 큐 선택기(501)로의 출력, 스트로브 위상 트래킹 디바이스(502)로의 출력, 트랜잭션 타입 트래킹 디바이스(503)으로의 출력 및 데이터 및 스트로브로의 출력을 포함한다. 데이터 큐 선택기(501)에 대해, 버스 상태 트래킹 디바이스로부터의 일 입력은 증분(increment) 선택기 신호인 수신된 데이터이다. 이 신호는 수신 프로세서의 코어에 데이터를 전송하기 위해 입력 데이터 버퍼의 래치에 표시를 제공한다. 신호가 어써트될 때, 데이터는 수신 에이전트에 있다는 것이 보장된다.
데이터 큐 선택기(501)로의 다른 입력은 소스 동기/커먼 클록 선택 신호이다. 이 신호는 클록이 동작하는 속도를 나타낸다. 버스 클록은 소스 동기 모드 또는 커먼 클록 모드로 수행될 수 있다.
버스 상태 트래킹 디바이스는 또한 신호를 스트로브 위상 트래킹 디바이스(502)에 전송한다. 이 신호는 트래킹 중인 스트로브 위상을 미리 변화시키기 위해 다음 사이클 신호를 사후 구동한다. 본 발명의 일 실시예에 따라서, 스트로브 위상 트래킹 디바이스는 모든 입수 기록 트랜잭션의 끝에서 마스터의 전환이 발생되는 것을 미리 가정하거나 예측한다. 이는 버스의 상태에 의해서 결정된다. 이후에, 마스터의 전환이 발생되지 않으면, 위상은 리셋된다. 이는 전환이 없으면,버스가 아이들 상태이기 때문에 리셋에 필요한 시간을 할애할 수 있어서 가능하다. 스트로브 위상 트래킹 디바이스의 출력은, 변환기(506)를 통해서 다른 변환된 신호가 된다. 이는 STBp 및 STBn 출력 버퍼가 동일하게 되는 것을 가능하게 한다.
버스 상태 트래킹 디바이스(500)는 레이트 리셋 신호와 얼리 리셋 신호를 출력한다. 레이트 리셋 신호는 데이터 입력 버퍼를 리셋하고, STBp 및 STBn는 버퍼를 입출력한다. 게다가, 레이트 리셋은 스트로브의 포스트 드라이브 엣지가 도 3에 도시된 바와 같이 제 2 아이들 버스 클록에서 수신된 이후에 저장되는 것을 보장한다. 얼리 리셋 신호는 프로세서(102)내의 임의의 다른 소자를 리셋시킨다. 얼리 리셋은 프로세서가 제 2 버스 아이들 사이클에서 사전 구동해야하는 이벤트에서 출력 버퍼를 초기화시키기 위해 사용된다. 얼리 및 레이트 리셋 신호는 모두 프로세서가 두개의 연속적인 버스 사이클이 존재한다고 판정했을 때, 트리거된다.
전송 프로세서의 역할을 하는 프로세서(102)에 대해, 트랜잭션 타입 트래킹 디바이스(503)는 버스 상태 트래킹 디바이스로부터 입력을 수신하고, 프로세서 상태 트래킹 디바이스(504)는 프로세서의 상태를 모니터한다. (부분 또는 전체 데이터가 수신중인가를 판정하는)트랜잭션 타입 트래킹 디바이스로부터의 출력은 프로세서 상태 트래킹 디바이스에 의해 어써트된 스트로브의 구동을 정지시키는 드라이브 이네이블 계산기(505)에 전송된다. 드라이브 이네이블 계산기(505)로부터의 출력은 스트로브 출력 버퍼에 전송되고, 프로세서 상태 트래킹 디바이스로부터의 출력은 데이터 출력 버퍼에 전송된다.
임의의 실시예가 상세한 설명 및 첨부된 도면에 개시되어 있지만, 이러한 실시예는 단지 예시일 뿐 넓은 의미의 발명에 제한되는 것은 아니고, 이러한 본 발명은 다양한 수정이 있을 수 있으므로, 도시되고 설명된 특정 구조 및 배열에 한정되는 것은 아니다.

Claims (23)

  1. 제 1 데이터 전송 및 제 2 데이터 전송사이에 적절한 사전 및 사후 구동을 보장하는 방법에 있어서, 상기 방법은:
    제 1 스트로브 신호 및 제 2 스트로브 신호를 생성하는 단계;
    제 1 데이터 전송 이전에 제 1 및 제 2 스트로브 신호중의 하나를 사전 구동하는 단계;
    상기 제 1 및 제 2 스트로브 신호 중 어느 것이 사후 구동될지를 판정하는 단계; 및
    제 1 및 제 2 스트로브 신호중 하나를 제 2 데이터 전송 이전에 사전 구동하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 마스터 전환이 제 1 데이터 전송의 종료시에 발생되는 것을 예상하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 제 1 및 제 2 스트로브 신호 중 어느 것이 사후 구동될 것인지를 버스 상태에 의해 판정하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 2 항에 있어서, 제 2 데이터 전송 이전에 상기 제 1 및 제 2 스트로브 신호 중 상기와는 다른 것을 사전 구동하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 2 항에 있어서, 제 2 데이터 전송 이전에 제 1 및 제 2 스트로브 신호를 사전 구동하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서, 상기 제 1 데이터 전송은 제 1 에이전트에 의해 요청되는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서, 상기 제 2 데이터 전송은 제 2 에이전트에 의해 요청되는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서, 상기 스트로브 위상 트래킹 디바이스는 상기 제 1 및 제 2 스트로브 신호중 어느 것이 사후 구동될 것인지를 판정하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서, 스트로브 신호가 전송될 것이라는 것을 알리는 신호를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 1 항에 있어서, 데이터가 전송될 것이라는 것을 나타내는 신호를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 컴퓨터 시스템에서 데이터를 전송하는 장치에 있어서, 상기 장치는:
    복수의 에이전트에 연결된 버스를 포함하고,
    상기 복수의 에이전트는 각각 에이전트를 포함하는 임의의 데이터 전송 동안 버스를 제어하는 버스 컨트롤러를 포함하고, 상기 버스 컨트롤러는 제 1 스트로브 신호 및 제 2 스트로브 신호를 생성하고, 제 1 데이터 전송 이전에 상기 제 1 및 제 2 스트로브 신호중의 하나를 사전 구동하고, 상기 제 1 및 제 2 스트로브 신호 중 어느 것이 사후 구동될 것인지를 판정하고, 상기 제 1 및 제 2 스트로브 신호중 하나를 제 2 데이터 전송이전에 사전 구동하는 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서, 상기 버스 컨트롤러는 마스터 전환이 제 1 데이터 전송의 종료시에 발생되는지를 예측하는 것을 특징으로 하는 장치.
  13. 제 11 항에 있어서, 상기 버스 컨트롤러는 상기 제 1 및 제 2 스트로브 신호중 어느 것이 버스 상태에 의해 사후 구동될 지를 결정하는 것을 특징으로 하는 장치.
  14. 제 12 항에 있어서, 상기 버스 컨트롤러는 상기 제 1 및 제 2 스트로브 신호 중 상기와는 다른 것을 제 2 데이터 전송이전에 사전 구동하는 것을 특징으로 하는장치.
  15. 제 12 항에 있어서, 상기 버스 컨트롤러는 제 2 데이터 전송 이전에 상기 제 1 및 제 2 스트로브 신호 중 하나를 사전 구동하는 것을 특징으로 하는 장치.
  16. 제 11 항에 있어서, 상기 제 1 데이터 전송은 제 1 에이전트에 의해 요청되는 것을 특징으로 하는 장치.
  17. 제 11 항에 있어서, 상기 제 2 데이터 전송은 제 2 에이전트에 의해 요청되는 것을 특징으로 하는 장치.
  18. 제 11 항에 있어서, 상기 버스 컨트롤러는 상기 제 1 및 제 2 스트로브 신호중 어느 것이 사후 구동될 지를 판정하는 스트로브 위상 트래킹 디바이스를 포함하는 것을 특징으로 하는 장치.
  19. 제 11 항에 있어서, 상기 버스 컨트롤러는 스트로브 신호가 전송될 것이라는 것을 나타내는 신호를 생성하는 것을 특징으로 하는 장치.
  20. 제 1 항에 있어서, 상기 버스 컨트롤러는 데이터가 전송될 것이라는 것을 나타내는 신호를 생성하는 것을 특징으로 하는 방법.
  21. 제 11 항에 있어서, 상기 버스 컨트롤러는 스트로브 신호가 전송될 것이라는 것을 나타내는 신호를 수신하는 것을 특징으로 하는 방법.
  22. 제 1 항에 있어서, 상기 버스 컨트롤러는 데이터가 전송될 것이라는 것을 나타내는 신호를 수신하는 것을 특징으로 하는 방법.
  23. 데이터 버스를 포함하고 제 1 스트로브 및 제 2 스트로브를 제공하는, 버스 클록을 구비한 버스;
    상기 제 1 또는 제 2 데이터 전송을 초기화하는 상기 버스에 연결된 제 1 에이전트;를 포함하고,
    상기 제 1 및 제 2 스트로브 신호는 제 1 및 제 2 데이터 전송의 데이터를 클로킹하고,
    상기 제 1 데이터 전송은 상기 제 1 스트로브 및 상기 제 2 스트로브 신호 중 하나에 의해 사전 구동되고,
    제 2 데이터 전송을 초기화하는 상기 버스에 연결된 제 2 에이전트, 상기 제 2 데이터 트랜스퍼는 상기 제 1 스트로브 및 제 2 스트로브 신호 중 다른 하나에 의해 사전 구동되는 것을 특징으로 하는 컴퓨터 시스템.
KR1020027008568A 1999-12-30 2000-11-16 통신 버스에서의 차동 스트로빙 방법 및 장치 KR100593787B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/475,985 1999-12-30
US09/475,985 US6453373B1 (en) 1999-12-30 1999-12-30 Method and apparatus for differential strobing
PCT/US2000/031345 WO2001050286A1 (en) 1999-12-30 2000-11-16 Method and apparatus for differential strobing in a communications bus

Publications (2)

Publication Number Publication Date
KR20020069012A true KR20020069012A (ko) 2002-08-28
KR100593787B1 KR100593787B1 (ko) 2006-06-28

Family

ID=23890021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027008568A KR100593787B1 (ko) 1999-12-30 2000-11-16 통신 버스에서의 차동 스트로빙 방법 및 장치

Country Status (8)

Country Link
US (1) US6453373B1 (ko)
EP (1) EP1242897B1 (ko)
KR (1) KR100593787B1 (ko)
CN (1) CN1248128C (ko)
AU (1) AU1611101A (ko)
HK (1) HK1065867A1 (ko)
RU (1) RU2256949C2 (ko)
WO (1) WO2001050286A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934789B2 (en) * 1999-11-24 2005-08-23 Via Technologies, Inc. Interface, structure and method for transmitting data of PCI bus which uses bus request signal for judging whether a device supporting dual transmission mode
US10775833B2 (en) * 2017-03-03 2020-09-15 Texas Instruments Incorporated Meeting setup/hold times for a repetitive signal relative to a clock

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1222664B (it) 1987-09-16 1990-09-12 Honeywell Bull Italiana S P A Circuito di pilotaggio di bus e di decodifica
JPH077376B2 (ja) 1989-04-14 1995-01-30 シャープ株式会社 システムバス制御方法
DE68916945T2 (de) 1989-04-28 1995-03-16 Ibm Synchronisierschaltung für Datenüberträge zwischen zwei mit unterschiedlicher Geschwindigkeit arbeitenden Geräten.
JP3001342B2 (ja) 1993-02-10 2000-01-24 日本電気株式会社 記憶装置
US5748914A (en) 1995-10-19 1998-05-05 Rambus, Inc. Protocol for communication with dynamic memory
US5964856A (en) * 1997-09-30 1999-10-12 Intel Corporation Mechanism for data strobe pre-driving during master changeover on a parallel bus
US6092212A (en) * 1997-12-22 2000-07-18 Intel Corporation Method and apparatus for driving a strobe signal
US6317801B1 (en) * 1998-07-27 2001-11-13 Intel Corporation System for post-driving and pre-driving bus agents on a terminated data bus

Also Published As

Publication number Publication date
US6453373B1 (en) 2002-09-17
KR100593787B1 (ko) 2006-06-28
EP1242897B1 (en) 2012-07-11
CN1494685A (zh) 2004-05-05
AU1611101A (en) 2001-07-16
EP1242897A1 (en) 2002-09-25
HK1065867A1 (en) 2005-03-04
RU2002120186A (ru) 2004-03-10
CN1248128C (zh) 2006-03-29
RU2256949C2 (ru) 2005-07-20
WO2001050286A1 (en) 2001-07-12

Similar Documents

Publication Publication Date Title
EP0135879B1 (en) Interface circuit and method for connecting a memory controller with a synchronous or an asynchronous bus system
EP0476990B1 (en) Dynamic bus arbitration
US5392422A (en) Source synchronized metastable free bus
JP2563888B2 (ja) 高周波低電力cmos回路
US4390969A (en) Asynchronous data transmission system with state variable memory and handshaking protocol circuits
US6336159B1 (en) Method and apparatus for transferring data in source-synchronous protocol and transferring signals in common clock protocol in multiple agent processing system
KR910007649B1 (ko) 핀수가 적은 고속 버스 인터페이스
US5812875A (en) Apparatus using a state device and a latching circuit to generate an acknowledgement signal in close proximity to the request signal for enhancing input/output controller operations
JPH0619756B2 (ja) 非同期装置間で通信を行なうための効率的なプロトコル
EP0579515B1 (en) Asynchronous bus interface for minimising asynchronous bus data transfer times
JP2004506975A (ja) クロックフォワードシステムi/oのための効率的なクロック開始および停止装置
US5964856A (en) Mechanism for data strobe pre-driving during master changeover on a parallel bus
KR100291409B1 (ko) 컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치
KR100963706B1 (ko) 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치
JPH0844559A (ja) データ処理装置およびそのオペレーション方法
KR100593787B1 (ko) 통신 버스에서의 차동 스트로빙 방법 및 장치
US6553434B1 (en) Pseudo master/slave decoupling of high speed bus communications timing
KR100454780B1 (ko) 패러랠 종단 버스 시스템
US7069363B1 (en) On-chip bus
KR100337059B1 (ko) 탄성 버스 인터페이스 데이터 버퍼
US6067629A (en) Apparatus and method for pseudo-synchronous communication between clocks of different frequencies
US5548767A (en) Method and apparatus for streamlined handshaking between state machines
US6557064B1 (en) Set up time adjust
US20030053573A1 (en) Microcontroller having a transmission-bus-interface
WO1997032308A1 (en) Method and apparatus for reducing latency time on an interface by overlapping transmitted packets

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: 20120601

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee