KR100337059B1 - 탄성 버스 인터페이스 데이터 버퍼 - Google Patents

탄성 버스 인터페이스 데이터 버퍼 Download PDF

Info

Publication number
KR100337059B1
KR100337059B1 KR1019997008174A KR19997008174A KR100337059B1 KR 100337059 B1 KR100337059 B1 KR 100337059B1 KR 1019997008174 A KR1019997008174 A KR 1019997008174A KR 19997008174 A KR19997008174 A KR 19997008174A KR 100337059 B1 KR100337059 B1 KR 100337059B1
Authority
KR
South Korea
Prior art keywords
data
register
signal
bus
clock cycle
Prior art date
Application number
KR1019997008174A
Other languages
English (en)
Other versions
KR20000076086A (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 KR20000076086A publication Critical patent/KR20000076086A/ko
Application granted granted Critical
Publication of KR100337059B1 publication Critical patent/KR100337059B1/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Dram (AREA)

Abstract

탄성 버스 인터페이스는 외부 데이터 전송 신호(28)를 수신하여 기록하며, 상기 외부 데이터 전송 신호의 도달 시간에 관계 없이 연속적인 클럭 사이클의 개시시에 항상 시작하는 내부 데이터 전송 신호(44)를 생성한다. 파이프 라인으로 다수의 데이터 출력 레지스터(54, 56)를 채용하고, 상기 내부 데이터 전송 신호만을 이용하여 데이터를 버스(25)에 공급함으로써, 거의 완전한 클럭 사이클이 데이터 전송을 수행하기 위한 셋업 시간에 이용 가능하게 되는 것을 보증한다. 본 발명은 통상의 간단한 회로 및 최소한의 칩 면적과 전력을 필요로 하는 최신의 프로세스 구조만을 이용하는 고속 버스로 동작할 수 있다.

Description

탄성 버스 인터페이스 데이터 버퍼{ELASTIC BUS INTERFACE DATA BUFFER}
컴퓨터 시스템은 버스와 같은 통신 채널을 통하여 장치들간에 데이터를 빈번하게 전송한다. 버스 트랜잭션에 있어서, 어떤 장치는 일반적으로 1개 이상의 버스 신호를 인에이블 신호로서 이용하여 상기 장치 내에 들어오고 그 장치로부터 나가는 유효한 데이터를 래치한다. 이들 버스 신호는 상기 버스의 상태를 나타내는 데에도 역시 이용된다.
예를 들면, 동기(同期) 버스를 비롯한 여러 가지 형식의 설계에서는 버스 속도를 증가시켜 왔다. 버스 속도의 증가는 버스를 경유하여 하나의 장치로부터 데이터를 전송하는 데에 여러 가지 문제점을 야기할 수 있다. 인에이블 신호가 수신되게 되면, 상기 장치는 그 장치로부터의 데이타를 상기 버스에 접속된 데이터 출력 레지스터에 이동시키는 데에 유한량(有限量)의 시간을 필요로 한다. 셋업 시간 (setup time)이라 부르는 이 시간 중에, 상기 장치는 버스 상태에 관한 결정들을 내려야 한다. 예를 들면, 이들 결정에는 복수 개의 데이터 소스 및 데이터 레지스터 중의 한 가지를 선택하는 일이 포함될 수 있다.
요구되는 셋업 시간은 넓은 데이터 버스일 수록 더 크다. 이러한 버스에 있어서, 신호는 논리 경로를 통해 나와서 희망하는 데이터 소스에 도달하므로, 인에이블 신호의 확장형 팬-아웃(fan-out)이 요구된다. 이 팬-아웃이 인에이블 신호를 느리게 하고, 이에 의하여 요구되는 셋업 시간이 증가된다. 이것은 고속 버스에서의 셋업 시간이 감소됨으로써 일어나는 문제들을 악화시킨다. 고속 버스에있어서 셋업 시간을 줄이는 문제는 제어 및 데이터 경로에 대해 매우 빠른 논리 회로를 사용함으로써 해결하여 왔다. 그러나, 이 논리 회로는 일반적으로 넓은 칩(chip) 면적과 과도한 전력을 소비하게 되는 정교한 프로세스 구조를 요한다. 팬-아웃 문제는 상기 논리 회로를 구동하기 위하여 복수 개의 인에이블 신호 복사본(copy)을 사용하여 상기 논리 회로를 구동시킴으로써 해결하여 왔다. 상기 신호의 각 복사본의 팬-아웃이 감소하여 로딩(loading) 프로세스 중의 신호 지연을 감소시킨다. 그러나, 상기 복수 개의 인에이블 신호의 복사본을 사용하는 것 역시 추가의 칩 면적을 요하게 되며 과도한 전력을 소비하게 된다.
2개의 장치를 포함하는 전형적인 버스 트랜젝션에 있어서, 이들 장치 중 1개는 데이터 소스이며, 다른 1개는 상기 제1 장치(데이터 소스)에 의해 버스에 제공되는 데이터 목록을 수신한다. 도 1은 컴퓨터 시스템(10)의 구성 요소들간에 데이터를 전송하는 대표적인 시스템 중의 한 가지 트랜젝션을 나타내고 있다. 일반적으로, 컴퓨터 시스템(10)은 근거리 통신망(15)에 의하여 연결된 컴퓨터, 프린터 및 서버와 같은 노드(12)를 포함하고 있다. 근거리 통신망(LAN)(15)들은 이들 자체가 광역 통신망(WAN)(17)에 의하여 연결될 수 있다. 그 밖에, 각 컴퓨터(12)는 통신 링크(25)를 통하여 디스크 드라이브 또는 기타의 주변 구성 소자와 같은 장치(22)에 접속될 수 있다. 통신 링크(25)로는 소형 컴퓨터 시스템 인터페이스(SCSI) 버스 또는 주변 장치 상호 접속(PCI) 버스와 같이 범용되고 있는 인터페이스가 사용될 수 있다. 각 장치(22)는 버스 인터페이스 유닛(BIU)(27)에 의하여 통신 링크 (25)에 접속된다.
도 2에는 버스 인터페이스 유닛(27)과 버스(25)에 접속되는 도 1 중의 장치(22)들 중의 하나가 도시되어 있다. 데이터 전송 신호(28)는 버스로부터 수신되고, 버스 프로토콜 제어 유닛(30)과 제1 논리 회로(32) 및 제2 논리 회로(34)에 의해 처리된다. 버스 프로토콜 제어 유닛(30)은 데이터 전송 신호(28)에 앞서 수신된 데이터 패킷을 해석하여 버스 트랜젝션의 정확한 상태를 결정한다. 이것은 데이터 포인터(36)를 갱신시키는 결과를 가져 온다. 예를 들면, 논리 회로(32)는 데이터 전송 신호가 복수 개의 데이터 소스 중에서 정확한 데이터 소스로 향하도록 지시하는 데 사용된다. 또한, 논리 회로(32)는 데이터 포인터(36)를 증분(增分)시키고, 정확한 데이터를 선택하며, 버스 프로토콜 등에 대한 결정을 내릴 수 있다. 논리 회로(34)는 복수 개의 데이터 출력 레지스터(38) 중에서 소망하는 레지스터를 선택하는 데 사용된다.
초기 상태에서는, 데이터 전송 신호(28)가 발생되면, 장치(22) 중의 데이터 포인터(36)는 버스 트랜젝션의 상태를 반영하도록 갱신된다. 또한, 상기 장치(22)로부터 나오는 그 다음의 데이터 항목은 상기 출력 레지스터(38) 내에서 래치된다. 이어서, 그 다음의 클럭 에지에서 버스(25)를 통하여 수신 장치[예를 들면, 또 다른 1개의 장치(22)]에 의해 1개의 데이터 항목이 취해진다. 이 데이터 항목은 통상 16 비트 또는 32 비트 워드로 이루어져 있다.
도 3은 데이터 포인터(36)를 갱신하는 것과 데이터 출력 레지스터(38) 내에 새로운 데이터 목록을 로딩하는 것을 제어하기 위하여 데이터 전송 신호(28)가 어떻게 이용되는가를 나타내고 있는 종래 기술의 타이밍도이다. 특히, 도 3은 7 클럭 사이클을 도시하고 있다. 클럭 사이클 2에서는, 데이터 전송 신호가 수신된다. 이것은 그 다음 클럭의 에지에서 데이터 포인터를 갱신시키는 결과로 된다. 이것은 N+1로 나타내고 있는 화살표에 의하여 지시되어 있다. 동시에, 상기 새로운 데이터 목록(N+1)이 데이터 레지스터(38) 내에 로딩되는데, 상기 목록은 버스 (25)에 대하여 가용성(可用性)으로 된다. 이와 유사한 동작이 클럭 사이클 4 및 5에서 반복하여 일어난다.
셋업에 대한 가용 시간(可用時間)은 데이터 전송 신호가 수신된 때로부터 그 다음 클럭의 에지까지이다. 상기 데이터는 사실상 그 다음 클럭의 에지에서 전송된다. 셋업 시간은 크게 변화될 수 있다. 상기 클럭 사이클 내에서 신호가 늦어지는 경우, 특히 버스(25)가 빠르고 논리 회로(32, 34)의 게이트 지연이 클 경우, 셋업 시간이 불충분하게 되는 수가 있다.도 4는 데이터 전송 신호가 일정의 클럭 사이클 내의 상이한 점에 도달하는 3 가지 경우를 도시하고 있다. 도 4에 도시되어 있는 것은 가능한 3 가지의 상이한 예를 나타내고 있는데, 일반적으로 어떤 주어진 클럭 사이클 내에서 수신된 단일한 데이터 전송 신호만이 있게 된다는 사실에 주목하여야 한다..
데이터 전송 신호는 활성(active) 클럭 에지에 관련된 클럭 사이클 내에서 가변(可變) 횟수로 나타날 수 있다는 점에 주목하여야 한다. 이것이 일어나는 이유는, 고속의 버스 속도에서는 데이터 인에블 신호를 구동시키는 장치가 어떤 버스 클럭 기간 내에 상기 데이터 신호를 표명(assert) 및 표명 해제(de-assert)하기 위한 시간이 적기 때문이다.
도 4의 예시 1에 있어서, 데이터 전송 신호(28)는 클럭 사이클 중의 초기에 수신된다. 위에서 예시한 시스템에 대하여 데이터 전송을 준비하기 위한 셋업 시간은 데이터 전송 신호(28)의 개시시로부터 클럭 사이클의 종료시까지의 시간이라고 정의된다. 이 시간 주기는 tS1로 표시되어 있다. 데이터는 그 다음 클럭 사이클의 활성 에지에서 데이터 출력 레지스터에 전송되게 된다. 이 경우, tS1은 길이가 거의 완전한 클럭 사이클이다. 이것은 고속 버스(예를 들면, 33 ㎑의 클럭 사이클에서 동작하는 버스)에 대해서도 충분한 셋업 시간을 제공할 가능성이 매우 크게 될 것이며, 이 때 논리 회로(32, 34)는 비교적 깊다. 예를 들면, tS1은 거의 30 ㎱ (nanoseconds)일 수 있다.
도 4의 예시 2에서는, 데이터 전송 신호가 클럭 사이클의 중간에 늦게 도달하고 있다. 이 경우, tS2로 정의된 가용 셋업 시간은 상기 예시 1 중의 셋업 시간의 약 절반에 불과하다. 예를 들면, 15 ㎱로 될 수 있다. 이 셋업 시간은 대부분의 경우에 여전히 적절하게 될 것이다.
도 4의 예시 3에 있어서, 데이터 전송 신호는 클럭 사이클의 종료점 부근까지 수신되지 않는다. 이 경우, 셋업 시간(tS3)은, 예를 들면 약 5 ㎱로서 매우 작다. 아마도, 이것은 전술한 설계 방식들을 택하여 작은 셋업 시간을 수용하지 않한, 충분한 셋업 시간을 제공하지 않을 것이다. 예를 들면, 이들 방식은 정교한 프로세스 구조 및 인에이블 신호의 복수 개의 복사본 사용을 포함한다. 반대로, 셋업 시간(tS3)이 충분하지 않을 경우, 데이터 전송은 일어나지 않거나, 또는 칩의 논리에 대하여 불충분한 전파(傳播) 시간으로 인한 에러가 발생할 것이다.
전술한 관점에서, 일정의 클럭 사이클 내에서 데이터 전송 신호가 늦게 도달되는 경우에도, 상기 데이터 전송 신호의 수신 후 적절한 셋업 시간이 가용성으로 되도록 보장하면서 데이터 소스로부터의 데이터를 버스에 전송하는 방법이 바람직할 것이다.
본 발명이 이들 요구를 충족시켜주고 있다.
본 발명은 데이터 관리에 관한 것으로서, 특히 버스를 경유하여 일어나는 장치들간의 데이터 전송에 관한 것이다.
도 1은 통상적인 종래 컴퓨터 시스템의 블록도이다.
도 2는 버스 인터페이스 유닛을 포함하는 도 1의 컴퓨터 시스템 일부의 블록도이다.
도 3은 도 2에 도시된 종래의 컴퓨터 시스템의 데이터 전송 신호에 응답하여 데이터 전송을 수행하는 프로세스 타이밍도이다.
도 4는 도 2에 도시된 종래의 컴퓨터 시스템에 따라 데이터 전송 신호의 다양한 도달 시간에 대한 각각의 타이밍도이다.
도 5는 본 발명에 따른 탄성 버퍼와 접속되는 버스 인터페이스 유닛의 블록도이다.
도 6은 본 발명에 따른 탄성 버퍼를 이용하는 데이터 전송 프로세스의 타이밍도이다.
도 7은 본 발명에 따른 외부 데이터 전송 신호의 3 가지 상이한 도달 시간에 대한 내부 데이터 전송 신호의 타이밍도이다.
각 도면에 있어서 동일한 참조 번호 및 명칭은 동일한 구성 요소를 나타낸다.
본 발명은 데이터를 하나의 장치로부터 하나의 시스템 버스에 전송하는 것에 관한 것이다. 상세히 말하자면, 본 발명은 외부 데이터 전송 신호를 수신하여, 적소(適所)에 사용되는 내부 데이터 전송 신호를 발생시킨다. 이 내부 데이터 전송 신호는 후속되는 데이터 전송 프로세스를 제어하는 데 사용된다. 상기 내부 데이터 전송 신호는 외부 데이터 전송 신호의 개시에 이은 클럭 사이클의 개시 바로 다음에 시작되며, 상기 데이터 전송 신호의 종결 후의 클럭 사이클의 개시 바로 다음에 종결된다.
내부 클럭 사이클의 데이터 전송 신호에 응답하여, 상기 장치로부터의 데이터를 버스에 전송하기 위한 준비를 행하기 위하여 통상의 셋업 프로세스가 수행된다. 그 다음의 클럭 사이클의 활성 에지 시간에, 한 쌍의 데이터 출력 레지스터 중의 제1 데이터 출력 레지스터에 데이터가 전송된다. 내부 데이터 전송 신호는 항상 클럭 사이클의 개시 부근에서 시작되기 때문에, 상기 시스템은 그 다음 클럭 사이클의 개시시 전송이 일어나기 전에 셋업하기 위한 완전한 클럭 사이클을 언제나 갖게 된다.
새로운 데이터 항목이 제1 데이터 출력 레지스터에 전송될 때마다, 상기 제1 데이터 출력 레지스터의 데이터가 제2 데이터 출력 레지스터에 전송된다. 상기 제1 및 제2 데이터 출력 레지스터는 모두 각 클럭 사이클 중의 데이터를 포함하게 된다. 상기 제1 데이터 출력 레지스터로부터의 데이터는, 클럭 사이클의 활성 에지 바로 다음의 예정되어 있는 시간에 내부 데이터 전송 신호가 존재할 경우, 버스에 대하여 가용성으로 된다. 상기 제2 데이터 출력 레지스터로부터의 데이터는, 내부 데이터 전송 신호가 클럭 사이클의 활성 에지 바로 다음의 예정되어 있는 시간에 상기 내부 데이터 전송 신호가 존재하지 않을 경우, 버스에 대하여 가용성으로 된다.
본 발명은 그 다음의 클럭 사이클 중에 내부 데이터 전송 신호 형태의 외부 데이터 전송 신호의 래치 버전을 사용하고 있다. 상기 내부 신호는 항상 클럭 사이클의 개시 무렵에 시작되기 때문에, 그 내부 신호에 의존하는 논리는 요구되는 셋업을 달성하기 위한 거의 전부의 클럭 주기를 갖게 된다. 상기 제1 데이터 출력 레지스터와 함께 사용되는 상기 제2 데이터 출력 레지스터는 어느 쪽의 레지스터로부터의 데이터이거나 버스에 출력되도록 해준다. 내부 데이터 전송 신호가 지연되더라도, 항상 버스용으로 준비된 데이터가 있게 된다. 이 결과는 최신의 프로세스 구조를 구비하고 병렬 데이터 전송 신호를 사용하지 않는 고속 버스 트랜잭션을 처리할 수 있는 탄성 버퍼(elastic buffer)인 것이다.
본 발명의 양호한 실시 형태에 대한 상세한 내용은 첨부 도면과 이하의 설명에 기재되어 있다. 본 발명의 상세한 내용이 알려지게 되는 한, 여러 가지 개선 및 변형을 추가하는 일은 이 분야의 숙련자들에게 자명하게 될 것이다.
이하의 설명과 양호한 실시 형태 및 실시예들은 본 발명에 대하여 어떤 제한을 가하기보다는 예시로서 고려되어야 한다.
도 5는 본 발명에 의한 탄성 버스 인터페이스(40)의 예를 도시하고 있다. 상기 탄성 버스 인터페이스(40)는 장치(22)를 이루는 데이터 소스 및 버스(25)에 접속된다. 외부 데이터 전송 신호(28)는 도 2에 도시된 대응하는 신호와 동일한 방식으로 수신된다. 클럭(24)은 클럭 신호를 생성한다. 본 발명에 따르면, 상기 외부 데이터 전송 신호(28)는, 이 외부 데이터 전송 신호(28)를 저장하는 내부 데이터 전송 레지스터(42)에 의해 수신된다. 상기 외부 데이터 전송 신호가 수신되는 클럭 사이클 다음의 클럭 사이클의 활성 에지 바로 다음에, 상기 내부 데이터 전송 레지스터(42)가 내부 데이터 전송 신호(44)를 생성한다. 예를 들면, 33 ㎒의 고속 버스 내에서, 상기 내부 데이터 전송 신호는 외부 데이터 전송 신호(28) 다음의 클럭 사이클의 활성 에지의 약 1 내지 2 ㎱ 후에 시작된다. 일단 상기 내부 데이터 전송 신호(44)가 생성되면, 상기 외부 데이터 전송 신호(28)는 더 이상 탄성 버스 인터페이스(40)의 하향류(下向流; downstream) 성분에 의하여 사용되지 않는다.
상기 내부 데이터 전송 신호는 제어 상태 장치인 버스 프로토콜 제어 유닛(46)에 전송된다. 상기 버스 프로토콜 제어 유닛(46)은 탄성 버스 인터페이스 (40)의 각종 구성 성분의 동작을 제어하며, 도 2에 도시된 버스 프로토콜 제어 유닛(30)과 유사한 통상의 버스 프로토콜 유닛을 포함할 수도 있다.
상기 내부 데이터 전송 신호(44)와 버스 프로토콜 제어 유닛(46)으로부터의 신호는 제1 및 제2 논리 회로(48, 50)에 의해 수신된다. 상기 제1 논리 회로(48)는 복수 개의 데이터 소스 가운데 어떤 데이터 소스를 선택할 것인가를 결정한다. 상기 버스 프로토콜 제어 유닛(46)은 이 선택을 제어한다. 동시에, 데이터 포인터 (52)는 그 다음의 적절한 데이터 번지(data address)로 증분된다. 셋업 시간은 상기 내부 데이터 전송 신호(44)의 수신 후에 이들 단계를 달성하기 위한 시간이다. 상기 내부 데이터 전송 신호는 항상 클럭 사이클의 활성 에지 바로 다음에 뒤따르기 때문에, 데이터가 실질적으로 그 다음의 클럭 사이클의 활성 에지에서 전송되기 전에 셋업을 수행하는 데에 가용성인 거의 완전한 1개의 클럭 사이클이 있게 되리라는 것을 알 수 있다.
제2 논리 회로(50)도 역시 상기 내부 데이터 전송 신호(44) 및 버스 프로토콜 제어 유닛(46)의 신호를 수신하여 복수 개의 다른 데이터 출력 레지스터(도시 생략) 중에서 적절한 제1 데이터 출력 레지스터(54)를 선택하게 된다. 이 제1 데이터 출력 레지스터(54)는 도선(60) 및 도선(62)을 통해 각각 제2 데이터 출력 레지스터(56)와 멀티플렉스 유닛(58)에 접속된다. 상기 제2 데이터 출력 레지스터 (56)는 도선(64)을 통해 상기 멀티플렉스 유닛(58)에 접속되며, 상기 제1 및 제2 데이터 출력 레지스터(54, 56)는 이단식(二段式) 탄성 버퍼를 형성한다.
상기 제1 및 제2 논리 회로(48, 50)가 내부 데이터 전송 신호(44)에 응답하여 셋업 작업을 수행하고 나면, 상기 탄성 버스 인터페이스(40)는 데이터를 전송 할 준비가 갖추어지는 것이다. 이것은 그 다음의 클럭 사이클의 활성 에지 시간에 발생하게 된다. 이것이 발생하면, 상기 데이터 포인터(52)에 의해 지시된 데이터 항목은 상기 제1 데이터 출력 레지스터(54)의 출력에 전송되게 된다. 상기 멀티플렉스 유닛(58)은 상기 제1 및 제2 데이터 출력 레지스터의 양쪽으로부터의 출력을 수신하며, 상기 멀티플렉스 유닛(58)의 출력은 상기 버스(25)에 결합된다.
새로운 데이터 항목은 데이터 소스(22)로부터 제1 데이터 출력 레지스터(54)에 전송됨과 동시에, 이전의 데이터 항목은 제1 데이터 출력 레지스터(54)로부터 제2 데이터 출력 레지스터(56)에 전송되게 된다. 이러한 방식으로, 상기 제1 및 제2 데이터 출력 레지스터의 양자는 항상 데이터를 포함하고 있는 이단식 파이프라인을 제공하게 된다.
상기 제1 또는 제2 데이터 출력 레지스터(54, 56)로부터의 데이터를 상기 버스(25)에 전송할 것인가 여부의 결정은 멀티플렉스 유닛(58)에 의하여 상기 내부 데이터 전송 신호(44)의 상태 함수로서 행하여진다. 일반적으로, 상기 제1 데이터 출력 레지스터(54)의 데이터는 내부 데이터 전송 신호(44)가 클럭 사이클의 활성 에지의 바로 다음에 활성으로 될 경우, 상기 버스(25)에 대하여 가용성으로 된다. 상기 제2 데이터 출력 레지스터(56)의 데이터는 내부 데이터 전송 신호(44)가 클럭 사이클의 활성 에지의 바로 다음에 존재하지 않을 경우, 상기 버스(25)에 대하여 가용성으로 된다.
상기 탄성 버스 인터페이스(40)의 동작은 도 6에 도시된 타이밍도에 의해 설명된다. 상기 타이밍도는 도 5에 도시되지 않은 클럭 신호(66, 66)와, 외부 데이터 전송 신호(28) 및 내부 데이터 전송 신호(44)를 포함한다. 이들 신호는 0으로부터 7까지의 숫자로 표시된 8개의 클록 사이클 중에 나타나 있다. 도 6은 데이터 포인터와 버스의 상태는 물론 연속적인 데이터 항목들(N, N+1, N+2, N+3, N+4)의 흐름도 역시 도시하고 있다.
클럭 사이클 0에는, 상기 외부 데이터 전송 신호(28)와 내부 데이터 전송 신호(44)의 어느 것도 존재하지 않다. 이 상태에서는 어떠한 변화도 일어나지 않는다. 이 조건에서, 상기 버스(25)는 제2 데이터 출력 레지스터(56)에 존재하는 데이터 항목을 가용 상태로 소유하게 된다. 상기 제1 및 제2 데이터 출력 레지스터는 항상 데이터에 의하여 로딩되어 있고, 상기 제1 데이터 출력 레지스터(54)는 현재 또는 다음의 데이터 항목을 포함하게 된다. 상기 제2 데이터 출력 레지스터는 현재 또는 이전의 데이터 항목을 포함하게 된다.
클럭 사이클 1에서는, 상기 외부 데이터 전송 신호(28)가 수신된다. 본 발명에 의하면, 이 신호는 상기 내부 데이터 전송 레지스터(42)에 기록되며, 후속되는 클럭 사이클 때까지 어떠한 상황도 발생하지 않는다. 데이터 항목(N)은 상기 외부 데이터 전송 신호의 존재로부터 버스(25)를 경유하여 그의 최종 목적지(도시 생략)까지 전송된다는 것을 추단할 수 있다. 클럭 사이클 2의 활성 에지는 상기 내부 데이터 전송 레지스터(42)를 트리거하여 내부 데이터 전송 신호(44)를 생성시킨다. 설명된 예시에 있어서, 이 신호는 상기 클럭 사이클의 리딩 에지(leading edge)의 약 1 내지 2 ㎱ 뒤에 시작될 것이다. 도 6의 타이밍도는 클럭의 상승 에지(rising edge)를 활성 에지로서 도시하고 있다.
상기 내부 데이터 전송 신호의 존재는 멀티플렉스 유닛(58)으로 하여금 상기 제1 레지스터(N+1)의 내용이 버스에 대하여 가용성이 되도록 해준다. 따라서, 레지스터 1은 출력 데이터(N+1)를 포함한다. 레지스터 2는 낡은[구(舊)] 데이터를 포함하게 된다. 클럭 사이클 2 중에, 상기 탄성 버스 인터페이스(40)는 전술한 셋업 프로세스를 수행하므로, 적절한 데이터 소스로부터의 그 다음의 소망하는 데이터 항목은 클럭 사이클 3의 활성 에지에서 적절한 데이터 출력 레지스터에 전송될 준비가 되는 것이다. 클럭 사이클 3의 개시시에, 상기 데이터 포인터(52)는 그 다음의 데이터 항목(N+2)으로 진행하여, 이 데이터를 상기 제1 데이터 출력 레지스터 (54)에 로딩한다. 다시 말하면, 상기 제1 및 제2 데이터 출력 레지스터는 이전의 클럭 사이클에서 로딩된 새로운 데이터 항목을 갖게 된다. 또한, 상기 데이터 항목(N+1)은 클럭 사이클 3 중에 전송되며, 상기 제2 데이터 출력 레지스터(56)가 출력 데이터 항목 (N+1)을 포함하게 된다. 상기 클럭 사이클 3에서는, 이 클럭 사이클의 활성 에지의 개시시에 상기 외부 데이터 전송 신호가 존재하지 않으므로, 상기 내부 데이터 전송 신호는 상기 클럭 사이클 3의 활성 에지의 바로 뒤에서 종료하게 된다.
또한, 상기 클럭 사이클 3 중에는, 후속되는 외부 데이터 전송 신호(28)가 수신된다. 이것은 상기 내부 데이터 전송 레지스터(42)로 하여금 후속되는 클럭 사이클의 활성 에지의 바로 다음에 내부 데이터 전송 신호를 생성하도록 해준다. 클럭 사이클 4에서는, 이 클럭 사이클의 활성 에지에 상기 내부 데이터 전송 신호가 존재하지 않았었기 때문에, 데이터 포인터는 증분되지 않는다. 그러나, 상기 활성 에지 뒤에서 상기 내부 데이터 전송 신호(44)가 개시되면, 제1 데이터 출력 레지스터(54)의 데이터가 상기 버스에 전송되게 된다. 또한, 클럭 사이클 4에 있어서, 상기 제2 데이터 출력 레지스터(56)는 낡은 데이터를 포함하게 된다.
상기 클럭 사이클 4에 있어서, 상기 데이터 출력 레지스터(54, 56)는 새로운 데이터 항목으로 로딩되는데, 이 경우 로딩이라 함은 내부 전송 신호에 응답하여 데이터를 버스(25)에 전송할 준비를 하는 데 필요한 셋업을 수행하는 것을 의미한다.
클럭 사이클 5에 있어서, 상기 제1 및 제2 데이터 출력 레지스터(54, 56)는 상기 클럭 사이클 4에서 로딩된 새로운 데이터 항목을 얻게 된다. 즉, 제1 데이터 출력 레지스터(54)는 새로운 데이터 항목(N+3)을 수신하고, 제2 데이터 출력 레지스터(56)는 상기 제1 데이터 출력 레지스터(54)로부터 새로운 데이터 항목(N+2)을 수신한다. 마찬 가지로, 상기 내부 데이터 전송 신호가 클럭 사이클 5의 활성 에지에서 표명되어 있기 때문에, 상기 데이터 포인터는 그 다음 데이터 항목으로 진행한다. 또한, 상기 클럭 사이클 5에 있어서, 상기 제2 데이터 출력 레지스터(56)는 낡은 데이터를 포함하고 상기 내부 데이터 전송 신호(44)는 클럭 사이클 5의 활성 에지의 바로 뒤에 존재하기 때문에, 상기 제1 데이터 출력 레지스터(54)는 버스에 대하여 가요성인 출력 데이터를 포함하게 된다. 따라서, 상기 데이터 항목 (N+3)은 버스에 전송될 준비가 되는 것이다. 더욱이, 상기 내부 데이터 전송 신호는 클럭 사이클 5의 활성 에지의 바로 다음에 존재하기 때문에, 제1 및 제2 데이터 출력 레지스터에는 모두 그 다음의 데이터 항목이 로딩된다.
클럭 사이클 6에 있어서, 상기 내부 데이터 전송 신호는 클럭 사이클의 활성 에지의 바로 뒤에 존재하지 않는다. 또한, 상기 제2 데이터 출력 레지스터(56)는 제1 데이터 출력 레지스터(54) 대신에 출력 데이터(N+3)를 포함하게 된다. 즉, 상 기 내부 데이터 전송 신호가 존재하지 않는다는 것은 새로운 데이터 항목이 전송될 준비가 되어 있지 않아야 한다는 것을 가르키는 것이다. 그러나, 이 데이터 항목은 제2 데이터 출력 레지스터로부터 가용성으로 되므로 상기 제1 데이터 출력 레지스터가 새로운 데이터 항목(N+4)에 의하여 사전 로딩된다. 이 상황은 상기 내부 데이터 전송 신호(44)가 클럭 사이클 6의 활성 에지 시간에 존재하였기 때문에 일어난다.
클럭 사이클 7에서는, 클럭 사이클의 활성 에지에 내부 데이터 전송 신호가 존재하지 않는다. 결과적으로, 상기 데이터 포인터는 이동되지 않고 데이터 항목(N+4)에 그대로 머물러 있다. 따라서, 상기 제1 데이터 출력 레지스터(54)는 데이터 항목(N+4)을 유지하며, 상기 제2 데이터 출력 레지스터(56)도 역시 데이터 항목(N+3)을 유지하고 있다. 이제, 상기 제2 데이터 출력 레지스터(56)는 버스에 전송될 준비가 되어 있는 출력 데이터를 포함하게 된다.
상기 제1 및 제2 데이터 출력 레지스터(54, 56)와 접속되어 있는 상기 멀티플렉스 유닛(58)과 논리 회로(48, 50)는 클럭 신호와 내부 데이터 전송 신호에 응답하여 전술한 단계들을 실행할 수 있다는 것이 이해될 것이다. 특히, 상기 멀티플렉스 유닛(58)은 내부 데이터 전송 신호와 클럭 신호의 상태에 근거하여, 상기 버스가 제1 데이터 출력 레지스터(54) 또는 제2 데이터 출력 레지스터(56)의 가용성의 내용을 갖게 될 것인가의 여부를 결정하게 된다.
탄성 버스 인터페이스(40)의 상기 양호한 실시 형태의 동작을 요약하기 위하여, 아래와 같은 일반적인 규범을 채용한다.
데이터 포인터
상기 내부 데이터 전송 신호가 클럭 사이클의 활성 에지의 개시시에 존재하면, 상기 데이터 포인터(52)는 다음의 데이터 항목으로 진행한다. 선택된 특정의 데이터 항목은 상기 버스 프로토콜 제어 유닛(46)에 의해 수신된 다른 신호에 의해 결정되게 된다. 상기 내부 데이터 전송 신호가 클럭 사이클의 개시시에 존재하지 않을 경우, 상기 데이터 포인터는 변화되지 않게 된다.
내부 데이터 전송 신호
외부 데이터 전송 신호가 클럭 사이클의 개시시에 존재하면, 상기 내부 데이터 전송 신호는 클럭 사이클의 개시 바로 뒤에서 표명되게 된다 (또는, 표명된 채로 있게 될 것이다.) 이것은 일반적으로 클럭 사이클 개시의 약 1 내지 2 ㎱ 후가 될 것이다. 상기 외부 데이터 전송 신호가 클럭 사이클의 개시시에 존재하지 않을 경우, 상기 내부 데이터 전송 신호는 클럭 사이클의 활성 에지 바로 뒤에서 표명 해제되게 된다(또는, 표명 해제된 채로 있게 된다.)
제1 데이터 출력 레지스터
상기 데이터 포인터(52)가 새로운 데이터 항목을 가르킬 경우(즉, 클럭 사이클의 개시시에 내부 데이터 전송 신호가 표명된다), 상기 제1 데이터 출력 레지스터(54)는 데이터 포인터에 의해 지시된 새로운 데이터 항목을 얻게 된다. 상기 데이터 포인터(52)가 상태를 변화시키지 아니 하고, 새로운 데이터 항목을 가르킬 경우(즉, 클럭 사이클의 개시시에 내부 데이터 전송 신호가 표명되지 않는다), 상기 제1 데이터 출력 레지스터(54)는 상태를 변화시키지 않는다.
제2 데이터 출력 레지스터
상기 내부 데이터 전송 신호가 클럭 사이클의 개시시에 존재할 경우, 상기 제1 데이터 출력 레지스터(54)로부터 새로운 데이터 항목은 상기 제2 데이터 출력 레지스터(56)로 전송된다. 상기 내부 데이터 전송 신호가 클럭 사이클의 활성 에지에서 표명되지 않을 경우, 상기 제2 데이터 출력 레지스터(54) 내의 데이터에는 아무런 변화도 없다.
버스
상기 내부 데이터 전송 신호가 클럭 사이클의 개시 바로 바로 뒤에서 표명되는 경우(또는, 표명된 채로 있을 경우), 상기 제1 데이터 출력 레지스터(54)로부터의 데이터 항목은 상기 버스에 대하여 가용성으로 된다. 상기 내부 데이터 전송 신호가 클럭 사이클의 활성 에지 바로 바로 뒤에서 표명 해제되는 경우(또는, 표명 해제된 채로 있을 경우), 상기 제2 데이터 출력 레지스터(56)의 내용은 상기 버스에 대하여 가용성으로 된다.
상기 내부 데이터 전송 신호가 존재하지 않을 경우, 제2 데이터 출력 레지스터(56)를 버스에 대한 출력으로서 사용함으로써, 상기 제1 데이터 출력 레지스터 (54)는 그 다음의 데이터 항목에 의하여 사전 로딩될 수 있다는 점에 주목하여야 한다. 이것은, 클럭 사이클 중에 상기 외부 데이터 전송 신호가 수신되는 시간에 관계 없이, 상기 버스에 연속적으로 데이터가 유입(流入)되게 하는 한편 셋업 시간에 대한 클럭 사이클이 완성되도록 해준다.도 7은 상기 외부 데이터 전송 신호가 언제 수신되는 지에 관계 없이 거의 전체의 클럭 사이클이 상기 셋업 시간 중에 어떻게 유지되는 지를 도시하고 있다. 첫째의 경우, 상기 외부 데이터 전송 신호는 클럭 사이클의 개시 바로 뒤에 수신된다. 상기 내부 데이터 전송 신호(44)는 후속되는 클럭 사이클의 활성 에지의 바로 다음에 시작된다. 데이터 전송은 그 다음의 클럭 사이클의 종료시에 일어나므로,상기 탄성 버스 인터페이스(40)에는 셋업 시간, 즉 사실상 완전한 클럭 사이클을 달성하기 위한 시간(ts1)이 제공된다. 이 경우, 상기 셋업 시간은 오직 외부 데이터 전송 신호만을 사용하는 통상적인 버스 인터페이스에 의한 것과 크게 다르지 않다.
둘째의 경우, 상기 외부 데이터 전송 신호(28)는 클럭 사이클의 거의 중간에서 도달되며, 상기 내부 데이터 전송 신호는 그 다음의 클럭 사이클의 개시 직후 시작된다. 상기 셋업 시간(ts2)은 다시 거의 완전한 클럭 사이클이 될 것이다. 여기서, 상기 셋업 시간(ts2)은 오직 외부 데이터 전송 신호만을 사용하는 통상적인 버스 인터페이스에 의한 시간의 거의 2배이다.
세째의 경우, 상기 외부 데이터 전송 신호(28)는 매우 느리게 클럭 사이클에 도달된다(예를 들면, 클럭 사이클 종료의 수 ㎱ 전에). 따라서, 상기 내부 데이터 전송 신호는 그 다음의 클럭 사이클 바로 다음에 시작하여 거의 완전한 클럭 사이클인 셋업 시간(ts3)을 제공할 수 있다. 이것은 33 ㎒에 대해 약 30 ㎱가 된다. 이 경우, 상기 외부 데이터 전송 신호(44)가, 예를 들면 클럭 사이클의 종료 약 3㎱ 전에 도달되는 경우, 상기 탄성 버스 인터페이스(40)는 오직 외부 데이터 전송 신호만을 사용하는 통상적인 버스 인터페이스 의한 시간의 거의 10배에 달하는 셋업 시간을 허용한다.
요약하자면, 본 발명은 데이터 소스로부터 버스에 데이터를 전송할 때, 외부 데이터 전송 신호의 수신 시간에 관계 없이 데이터 전송에 필요한 적절한 셋업 시간을 허용하는 간단한 데이터 전송 방법을 제공한다. 내부 데이터 전송 신호는 외부 데이터 전송 신호보다 1 클럭 사이클 늦게 데이터를 전송하는 방식의 파이프라인으로 구성된 복수 개의 데이터 출력 레지스터와 함께 사용된다. 이것은 일관성 있고 적절한 셋업 시간을 유지한다. 본 발명은 최소한의 칩 면적 및 전력을 요하는 최신의 프로세스 구조만을 이용하여 이를 달성하고 있다.
이상, 본 발명의 다수의 실시 형태에 대하여 설명하였다. 그러나, 본 발명의 정신과 범위를 벗어나는 일이 없이 여러 가지 변형 및 수정이 가능하다는 점을 인식하여야 한다. 예를 들면, 본 발명의 기술을 실시하는 데에는 전술한 양호한 실시 형태에 나타낸 것들 이외의 회로 구성이 채용될 수도 있다. 또한, 본 발명의 탄성 버스 인터페이스는 단일 칩 집적 회로 또는 복수 개의 별개의 회로에서도 실시될 수 있다. 따라서, 본 발명은 전술한 특정의 각 실시 형태에 의하여 제한되지 않으며, 오직 첨부된 청구 범위에 의해서만 제한된다는 점을 이해하여야 한다.

Claims (16)

  1. 컴퓨터 버스를 경유하여 데이터를 한쪽 장치로부터의 다른쪽 장치에 전송하는 방법에 있어서,
    (a) 복수 개의 클럭 사이클이 클럭 신호를 생성시키는 단계;
    (b) 외부 데이터 전송 신호를 수신하는 단계;
    (c) 상기 외부 데이터 전송 신호에 후속되는 클럭 사이클의 개시 후에 시작
    되는 내부 데이터 전송 신호를 생성시키는 단계;
    (d) 상기 내부 데이터 전송 신호의 생성에 응답하여 상기 장치로부터의 데이
    터를 제1 레지스터에 전송하는 단계;
    (e) 새로운 데이터를 상기 장치로부터 상기 제1 레지스터에 전송할 때마다,
    상기 제1 레지스터부터의 현재의 데이터를 제2 레지스터에 전송하는 단
    계;
    (f) 상기 내부 데이터 전송 신호의 발생에 응답하여 상기 제1 레지스터 내의
    데이터를 버스에 전송하는 단계;
    (g) 상기 내부 데이터 전송 신호가 존재하지 않을 경우 상기 제2 레지스터로
    부터의 신호를 상기 버스에 전송하는 단계
    를 포함하고,
    상기 내부 데이터 전송 신호가 클럭 사이클의 활성 에지 시간에 존재할 경우, 데이터는 상기 장치로부터 제1 레지스터에, 그리고 상기 제1 레지스터로부터 제2 레지스터에 전송되는 것을 특징으로 하는 데이터 전송 방법.
  2. 제1항에 있어서, 클럭 사이클의 활성 에지 후의 예정되어 있는 시간에 상기 내부 데이터 신호가 제공될 경우, 상기 제1 레지스터 내의 데이터를 상기 버스에 전송하는 단계를 더 포함하는 것인 데이터 전송 방법.
  3. 제1항에 있어서, 클럭 사이클의 활성 에지 후의 예정되어 있는 시간에 상기 내부 데이터 전송 신호가 제공되지 않을 경우, 상기 제2 레지스터 내의 데이터를 상기 버스에 전송하는 단계를 더 포함하는 것인 데이터 전송 방법.
  4. 제2항에 있어서, 상기 예정되어 있는 시간은 약 2 ㎱ 미만인 것인 데이터 전송 방법.
  5. 컴퓨터 버스를 경유하여 하나의 장치로부터의 데이터를 다른 장치에 전송하는 방법에 있어서,
    (a) 클럭 신호를 제공하는 단계;
    (b) 데이터 전송 시점을 가리키고 상기 클럭 신호의 활성 에지에 대하여 가
    변 횟수로 발생하는 외부 데이터 전송 신호를 포함하는 신호를 수신하는
    단계;
    (c) 상기 외부 데이터 전송 신호의 개시에 후속되는 클럭 사이클의 활성 에
    지 바로 뒤에서 시작되는 활성 에지가 있고, 가변량(可變量)만큼 상기 외
    부 데이터 전송 신호로부터 지연되는 내부 데이터 전송 신호를 생성하는
    단계;
    (d) 상기 내부 데이터 전송 신호를 사용하여 상기 장치로부터의 데이타 전송
    을 제어하는 단계;
    (e) 상기 장치로부터 전송된 데이터를 제1 레지스터에 저장하는 단계;
    (f) 상기 내부 데이터 전송 신호의 상태에 따라 상기 데이터를 제1 레지스터
    로부터 제2 레지스터 또는 상기 버스에 전송하는 단계;
    (g) 상기 내부 데이터 전송 신호의 예정되어 있는 상태가 존재할 경우, 상기
    제2 레지스터로부터의 데이터를 상기 버스에 전송하는 단계
    를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  6. 제5항에 있어서, 상기 내부 데이터 전송 신호의 개시시에 데이터 소스로부터의 데이터 전송을 위한 준비로 셋업 과정을 시작하는 단계와, 후속되는 클럭 사이클의 개시시에 데이터를 전송하는 단계를 더 포함하고, 상기 셋업 과정에 대한 가용 시간(可用時間)이 약 1 클럭 사이클인 것인 데이터 전송 방법.
  7. 컴퓨터 버스를 경유하여 하나의 장치로부터의 데이터를 다른 장치에 전송하는 방법에 있어서,
    (a) 클럭 신호를 발생하는 단계;
    (b) 상기 버스로부터 외부 데이터 전송 신호를 수신하는 단계;
    (c) 상기 외부 데이터 전송 신호를 입력 레지스터에 저장하는 단계;
    (d) 상기 각 외부 데이터 전송 신호에 후속되는 클럭 사이클의 활성 에지의
    바로 뒤에서 개시되고, 상기 외부 데이터 전송 신호의 종료에 후속되는 클
    럭 사이클의 활성 에지의 바로 뒤에서 종료하며, 클럭 사이클의 개시 부근
    에서 항상 시작되는 내부 데이터 전송 신호를 생성하는 단계;
    (e) 상기 입력 레지스터로부터 내부 데이터 전송 신호를 출력하는 단계;
    (f) 클럭 사이클의 개시시에 상기 내부 데이터 전송 신호가 제공될 때마다,
    제1 레지스터로부터의 현재의 데이터를 제2 레지스터에 전송하는 단계;
    (g) 클럭 사이클의 개시시에 상기 내부 데이터 전송 신호가 제공될 때마다,
    상기 하나의 장치로부터의 새로운 데이터를 상기 제1 레지스터에 전송하는
    단계;
    (h) 클럭 사이클의 개시 바로 다음에 상기 내부 데이터 전송 신호가 제공될
    때마다, 상기 제1 레지스터로부터의 데이터를 상기 버스에 전송하는 단
    계;
    (i) 클럭 사이클의 개시 바로 다음에 상기 내부 데이터 전송 신호가 제공되
    지 않을 경우, 상기 제2 레지스터로부터의 데이터를 상기 버스에 전송하는 단계
    를 포함하고,
    상기 제1 레지스터가 새로운 데이터에 의하여 사전 로딩되는 한편 상기 제2 레지스터는 그 자체의 데이터를 상기 버스에 대하여 가용성(可用性)으로 되게 하고, 거의 완전한 1개의 클럭 사이클을 이용하여 상기 장치로부터의 데이터를 제1 레지스터에 전송하는 것을 특징으로 하는 데이터 전송 방법.
  8. (a) 복수 개의 데이터 항목을 포함하는 데이터 소스;
    (b) 외부 데이터 전송 신호를 생성하는 버스;
    (c) 상기 버스에 접속되며 활성 에지를 갖는 클럭 신호를 생성하는 클럭;
    (d) 일부 클럭 사이클 내에서 가변 횟수로 상기 외부 데이터 전송 신호를 수
    신하고, 상기 외부 데이터 전송 신호가 수신되는 클럭 사이클에 후속되는
    클럭 사이클의 활성 에지의 바로 뒤에 시작되는 내부 데이터 전송 신호를
    출력으로서 생성하는 입력 레지스터;
    (e) 상기 내부 데이터 전송 신호 및 클럭 신호에 응답하여 상기 데이터 소스
    로부터의 데이터를 전송하는 데이터 전송 수단;
    (f) 상기 데이터 전송 수단으로부터의 데이터를 수신하는 제1 출력 레지스
    터;
    (g) 상기 제1 출력 레지스터로부터의 데이터를 수신하는 제2 출력 레지스터;
    (h) 상기 제1 및 제2 출력 레지스터로부터의 데이터를 수신하고, 상기 입력
    데이터 전송 신호의 상태에 따라 상기 제1 또는 제2 출력 레지스터로부터
    의 데이터를 상기 버스에 대한 출력으로서 생성하는 멀티플렉스 유닛
    을 포함하는 것을 특징으로 하는 버스 인터페이스.
  9. 제8항에 있어서, 상기 내부 데이터 전송 신호는 상기 외부 데이터 전송 신호가 종료하는 클럭 신호에 후속하는 클럭 신호의 활성 에지의 바로 뒤에서 종료되는 것인 버스 인터페이스.
  10. 제8항에 있어서,
    (a) 상기 데이터 전송 수단에 접속된 신호를 생성하는 버스 프로토콜 컨트롤러와, (b) 버스 프로토콜 신호에 따라 복수 개의 데이터 소스 및 제1 출력 레지스터 중에서 선택하기 위한 제1 및 제2 로직 회로를 각각 구비하는 데이터 전송 수단을 더 포함하는 것인 버스 인터페이스.
  11. 제10항에 있어서, 상기 데이터 전송 수단은 상기 내부 데이터 전송 신호와 버스 프로토콜 제어 유닛에 의해 제어되고 상기 데이터 소스의 데이터 항목을 선택하는 데이터 포인터를 더 포함하는 것인 버스 인터페이스.
  12. 제8항에 있어서, 상기 데이터 전송 수단은 상기 내부 데이터 전송 신호가 시작되는 경우 데이터 전송을 위한 준비로 셋업 과정을 개시하는 것인 버스 인터페이스.
  13. 제8항에 있어서, 예정되어 있는 시간에 상기 내부 데이터 전송 신호가 제공되는 경우 상기 멀티플렉스 유닛은 제1 출력 레지스터로부의터 데이터를 출력하고, 예정되어 있는 시간에 상기 내부 데이터 전송 신호가 제공되지 않을 경우 상기 멀티플렉스 유닛은 제2 출력 레지스터로부터의 데이터를 출력하는 것인 버스 인터페이스.
  14. 제13항에 있어서, 상기 예정되어 있는 시간은 임의의 주어진 클럭 사이클의 활성 에지 바로 다음인 것인 버스 인터페이스.
  15. 제14항에 있어서, 상기 예정되어 있는 시간은 임의의 주어진 클럭 사이클의 활성 에지 다음에 약 2 ㎱ 미만인 것인 버스 인터페이스.
  16. 제8항에 있어서, 클럭 사이클의 개시시에 상기 내부 데이터 전송 신호가 제공되는 경우 상기 제1 출력 레지스터는 상기 장치로부터의 데이터를 수신하는 것인 버스 인터페이스.
KR1019997008174A 1997-03-10 1998-03-10 탄성 버스 인터페이스 데이터 버퍼 KR100337059B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/813,271 US5838936A (en) 1997-03-10 1997-03-10 Elastic bus interface data buffer
US8/813,271 1997-03-10
US08/813,271 1997-03-10

Publications (2)

Publication Number Publication Date
KR20000076086A KR20000076086A (ko) 2000-12-26
KR100337059B1 true KR100337059B1 (ko) 2002-05-16

Family

ID=25211940

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997008174A KR100337059B1 (ko) 1997-03-10 1998-03-10 탄성 버스 인터페이스 데이터 버퍼

Country Status (7)

Country Link
US (1) US5838936A (ko)
EP (1) EP1008038A4 (ko)
JP (1) JP2000511676A (ko)
KR (1) KR100337059B1 (ko)
AU (1) AU6699698A (ko)
CA (1) CA2283229C (ko)
WO (1) WO1998040819A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US6654897B1 (en) 1999-03-05 2003-11-25 International Business Machines Corporation Dynamic wave-pipelined interface apparatus and methods therefor
US6334163B1 (en) * 1999-03-05 2001-12-25 International Business Machines Corp. Elastic interface apparatus and method therefor
US6571346B1 (en) * 1999-11-05 2003-05-27 International Business Machines Corporation Elastic interface for master-slave communication
US6542999B1 (en) * 1999-11-05 2003-04-01 International Business Machines Corp. System for latching first and second data on opposite edges of a first clock and outputting both data in response to a second clock
US6954870B2 (en) * 2002-03-12 2005-10-11 International Business Machines Corporation Method for receiver delay detection and latency minimization for a source synchronous wave pipelined interface
US6934867B2 (en) * 2002-05-17 2005-08-23 International Business Machines Corporation Digital system having a multiplicity of self-calibrating interfaces

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2621176B2 (ja) * 1987-05-14 1997-06-18 ソニー株式会社 ワンチツプマイクロコンピユータ
US5619668A (en) * 1992-08-10 1997-04-08 Intel Corporation Apparatus for register bypassing in a microprocessor

Also Published As

Publication number Publication date
JP2000511676A (ja) 2000-09-05
CA2283229A1 (en) 1998-09-17
EP1008038A4 (en) 2002-08-07
WO1998040819A1 (en) 1998-09-17
EP1008038A1 (en) 2000-06-14
AU6699698A (en) 1998-09-29
CA2283229C (en) 2003-07-15
US5838936A (en) 1998-11-17
KR20000076086A (ko) 2000-12-26

Similar Documents

Publication Publication Date Title
JP3565600B2 (ja) データ通信装置およびデータ通信方法
US5070443A (en) Apparatus for write handshake in high-speed asynchronous bus interface
JPH03175848A (ja) 2経路データ転送装置
US6249875B1 (en) Interface circuit using plurality of synchronizers for synchronizing respective control signals over a multi-clock environment
JP5230887B2 (ja) クロックフォワードシステムi/oのための効率的なクロック開始および停止装置
US6163545A (en) System and method for data transfer across multiple clock domains
KR100337059B1 (ko) 탄성 버스 인터페이스 데이터 버퍼
US5937167A (en) Communication controller for generating four timing signals each of selectable frequency for transferring data across a network
US6640277B1 (en) Input staging logic for latching source synchronous data
US6560666B1 (en) Hub link mechanism for impedance compensation update
JP3651588B2 (ja) 区分化同期インタフェース用調整可能クロックを備えたデータ処理システム
JP3253547B2 (ja) データ転送システム
Audet et al. Pipelining communications in large VLSI/ULSI systems
EP0829095B1 (en) Method and apparatus for reducing latency time on an interface by overlapping transmitted packets
US6499080B1 (en) Post write buffer for a dual clock system
US7752475B2 (en) Late data launch for a double data rate elastic interface
EP1242897B1 (en) Method and apparatus for differential strobing in a communications bus
CN111435340B (zh) 互联网总线单元及数据传输方法、wishbone互联网模块、芯片
KR100818908B1 (ko) 파이프라인식 삽입을 위한 회로 및 방법
US7519789B1 (en) Method and system for dynamically selecting a clock edge for read data recovery
USRE40317E1 (en) System for receiving a control signal from a device for selecting its associated clock signal for controlling the transferring of information via a buffer
KR20020084725A (ko) 저속 주변장치와의 데이터 전송을 위한 메모리 컨트롤러
US6970477B2 (en) Data transmission circuit and method
JPH08249273A (ja) 転送速度切り替え機能付き非同期転送回路
US6601182B1 (en) Optimized static sliding-window for ACK sampling

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
LAPS Lapse due to unpaid annual fee