KR100258986B1 - 두 개의 상호 비동기적인 버스들 사이의 데이터의 동기 전송에누적하는 시간 지연 감소 - Google Patents

두 개의 상호 비동기적인 버스들 사이의 데이터의 동기 전송에누적하는 시간 지연 감소 Download PDF

Info

Publication number
KR100258986B1
KR100258986B1 KR1019970708819A KR19970708819A KR100258986B1 KR 100258986 B1 KR100258986 B1 KR 100258986B1 KR 1019970708819 A KR1019970708819 A KR 1019970708819A KR 19970708819 A KR19970708819 A KR 19970708819A KR 100258986 B1 KR100258986 B1 KR 100258986B1
Authority
KR
South Korea
Prior art keywords
data
bus
buffer
flag
state device
Prior art date
Application number
KR1019970708819A
Other languages
English (en)
Other versions
KR19990022339A (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 KR19990022339A publication Critical patent/KR19990022339A/ko
Application granted granted Critical
Publication of KR100258986B1 publication Critical patent/KR100258986B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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

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)
  • Bus Control (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

제1 및 제2 데이터 버스들(110 및 120) 사이의 인터페이스는 제1 데이터 버스(110)로부터 데이터 버퍼(132)로의 데이터 전송들을 제어하는 제1 버스 상태 장치(406)를 포함한다. 인터페이스는 데이터 버퍼(132)로부터 제2 데이터 버스(120)로의 데이터 전송들을 제어하는 제2 버스 상태 장치(404)를 포함한다. 데이터 버퍼(132)는 선입 선출에 기초하여 접근되는 복수개의 데이터 저장 장소들을 포함한다. 각 저장 장소에 대한 각각의 유효 데이터 플래그(170)는 데이터가 제1 데이터 버스(110)로부터 저장 장소(132)에 저장될 때 제1 버스 상태 장치(406)에 의하여 세트되고 데이터가 저장 장소(132)로부터 제2 데이터 버스(120)에 전송될 때 제2 버스 상태 장치(404)에 의하여 지워진다. 데이터 유효 플래그들(170)이 각 상태 장치에 대하여 동기적으로 변하는 것을 보장하기 위하여 데이터 유효 플래그들(170)은 각각 제1 및 제2 버스 상태 장치들(406 및 404)과 관련되는 제1 및 제2 버스 클락들에 동기된다. 데이터 버퍼(132) 내의 다수의 데이터 장소들로부터 순차적인 데이터를 출력하는데 요구되는 시간을 감소시키기 위하여, 각 데이터 유효 플래그(170)는 독립적으로 동기된다.

Description

두 개의 상호 비동기적인 버스들 사이의 데이터의 동기 전송에 누적하는 시간 지연 감소
대부분의 최신 컴퓨터 시스템은 다른 데이터 율들에서 동작하는 복수개의 다른 데이터 버스들을 가진다. 다른 데이터 율들을 다른 데이터 버스들이 서로 동기하여 동작하는 하나의 공통 클락에 관련시키는 것이 어떤 시스템에서는 가능하다. 그러나 많은 시스템에서는 다른 데이터 버스들이 서로들에 대하여 비동기하여 동작한다. 즉, 버스들이 주파수와 위상이 고정된 관계를 가지지 않는 다른 클락들에 의하여 제어된다. 그래서, 소스 버스 상의 데이터는 데이터가 전송되는 목적 버스 상의 제어 신호들에 대하여 수시로 여러 번 변할 수 있다. 레지스터들 또는 다른 저장 디바이스들과 같은 디지털 디바이스들 상의 최소 셋업(setup) 및 홀드(hold) 시간들을 만족시키는 것이 필요하기 때문에, 두 개의 버스들 사이의 데이터 전송을 동기시키는 것이 필요하다. 이것은 동기 회로들에 의하여 수행된다. 예를 들어, 소스 버스는 소스 버스 상의 데이터가 이미 전송되었음을 알리는 데이터 스트로브(data strobe) 신호를 발생할 수 있다. 데이터 스트로브 신호는 대개 목적 버스를 직접적으로 제어하는 데는 사용할 수 없다. 게다가, 목적 버스를 제어하는 클락 신호로 데이터 스트로브 신호를 클락함에 의하여 데이터 스트로브 신호는 먼저 목적 버스와 연관되는 제어 회로 내로 저장된다. 저장된 데이터 스트로브 신호는 그 다음에 목적 버스 상의 데이터 저장 디바이스들(예, 레지스터들 또는 래치들)을 제어하는 데 사용된다. 목적 버스에 데이터 스트로브 신호(또는 다른 제어 신호)를 동기시킴으로써, 소스 버스로 부터의 데이터는 목적 버스에 대하여 안정되고 그리하여 전송될 수 있다는 것을 확실하게 할 수 있다.
비록 데이터 스트로브 신호의 동기화가 이루어지면 두 개의 상호 비동기하는 버스들 사이에 데이터 전송이 데이터의 손실 없이 발생하지만, 동기에 관련되는 부담 시간이 존재한다. 특히, 동기성을 획득하는 데는 목적 버스의 두 클락 주기 만큼이 소요된다. 이따금씩 일어나는 데이터 전송들에 대하여, 동기화 부담은 쉽게 감수될 수 있다; 그러나, 많은 양의 데이터가 다수의 전송들(예, 버스트 전송들)에 의하여 전송되는 경우, 누적되는 부담은 컴퓨터 시스템의 전체적인 성능을 매우 감소시킨다. 그래서, 두 개의 상호 비동기하는 버스들 사이의 데이터 버스트들의 전송들에 대한 동기화 부담을 감소할 필요가 존재한다.
발명의 개요
본 발명의 일 태양은 서로에 대하여 비동기적으로 작동하는 제1 및 제2 버스들 사이의 인터페이스 회로이다. 제1 버스는 제1 버스 클락에 동기하여 데이터를 인터페이스에 제공하고 제2 버스는 제2 버스 클락에 동기하여 인터페이스로부터 데이터를 수신한다. 장치는 제1 버스 클락에 동기하여 제1 버스로부터의 데이터가 저장되는 제1 및 제2 버퍼 장소들을 적어도 구비하는 입/출력 버퍼를 구비한다. 적어도 제1 및 제2 데이터 유효 표시기들은 각각 제1 및 제2 버퍼 장소들과 관련된다. 제1 데이터 유효 표시기는 데이터가 제1 버퍼 장소에 저장될 때 제1 버스 클락에 동기적으로 세트된다. 제2 데이터 유효 표시기는 데이터가 제2 버퍼 장소에 저장될 때 제2 버스 클락에 동기적으로 세트된다. 데이터 유효 표시기 선택자는 제1 및 제2 데이터 유효 표시기들 중의 하나를 출력 데이터 유효 표시기로서 선택한다. 버스 상태 장치는 데이터를 입/출력 버퍼로부터 제2 버스에 전송하기 위하여 제2 버스 클락에 동기적으로 작동한다. 버스 상태 장치는 제1 및 제2 버퍼 장소들 중의 하나를 제2 버스로 전송되는 데이터의 소스로서 선택한다. 버스 상태 장치는 제1 및 제2 데이터 유효 표시기들 중의 하나를 출력 데이터 유효 표시기로서 선택하도록 데이터 표시기 선택자를 제어한다. 버스 상태 장치는 출력 데이터 유효 표시기를 모니터하여 제1 버스로부터의 데이터가 선택된 제1 또는 제2 버퍼 장소들에 저장되는 때를 결정한다. 제1 동기화 회로는 제1 데이터 유효 표시기를 수신하여 제2 버스 클락에 동기시켜서 제1 동기된 데이터 유효 표시기를 데이터 유효 표시기 선택자에 입력으로 제공한다. 제2 동기화 회로는 제2 데이터 유효 표시기를 수신하여 제2 버스 클락에 동기시켜서 제2 동기된 데이터 유효 표시기를 데이터 유효 표시기 선택자에 입력으로 제공한다.
본 발명의 다른 태양은 서로에 대하여 비동기적으로 작동하는 제1 및 제2 버스들 사이에 데이터를 전송하는 장치이다. 장치는 데이터를 저장하는 복수개의 데이터 저장 장소들을 구비하는 데이터 저장 소자를 구비한다. 제1 버스 인터페이스 상태 장치는 제1 데이터 버스에 연결된다. 제1 버스 인터페이스 상태 장치는 데이터를 제1 데이터 버스로부터 복수개의 데이터 저장 장소들 중에 선택된 하나에 전송한다. 제2 버스 인터페이스 상태 장치는 제2 데이터 버스에 연결된다. 제2 버스 인터페이스 상태 장치는 데이터를 복수개의 데이터 저장 장소들 중에 선택된 하나로부터 제2 데이터 버스에 전송한다. 복수개의 데이터 저장 장소들 각각에 대하여 각각의 표시기를 가지는 데이터 제공 버퍼가 포함된다. 표시기들 중의 하나는 데이터를 복수개의 데이터 저장 장소들 중의 선택된 하나에 전송하는 제1 버스 상태 장치에 응답하여 세트되고 복수개의 저장 장소들 중의 선택된 하나로부터 제2 데이터 버스로 데이터를 전송하는 제2 버스 상태 장치에 응답하여 지워진다. 제2 버스 인터페이스 상태 장치는 선택된 표시기가 세트될 때만 복수개의 데이터 저장 장소들 중에서 선택된 하나로부터 데이터를 전송한다. 각각의 지연 회로들의 세트는 데이터 제공 버퍼와 제2 버스 인터페이스 상태 장치 사이에 연결되어 제2 버스 인터페이스 상태 장치가 복수개의 데이터 저장 장치들 중의 하나로부터 제1 버스 인터페이스 장치가 데이터를 선택된 데이터 저장 장소로 전송한 후 적어도 소정의 시간이 경과할 때까지 데이터를 전송하지 않도록 표시기들을 지연시킨다.
본 발명의 다른 태양은 제1 데이터 버스와 제2 데이터 버스 사이에 데이터를 전송하는 장치이다. 장치는 데이터를 저장하는 제1 및 제2 데이터 저장 장소들을 구비한 버퍼를 포함하여 구성된다. 제1 및 제2 데이터 버스들은 서로에 대하여 비동기적으로 작동한다. 제1 버스 인터페이스 상태 장치는 제1 데이터 버스와 버퍼에 연결되어 제1 버스 클락 신호에 따라서 제1 데이터 버스로부터 제1 및 제2 데이터 저장 장소들 중의 하나로의 데이터 전송들을 제어한다. 제2 버스 인터페이스 상태 장치는 제2 데이터 버스와 버퍼에 연결되어 제1 버스 클락 신호에 비동기적으로 작동하는 제2 버스 클락 신호에 따라서 버퍼로부터 제2 데이터 버스로의 데이터의 전송들을 제어한다. 제1 및 제2 플래그 버퍼들은 제1 및 제2 버스 인터페이스 상태 장치들 모두에 결합되는 각각의 제1 및 제2 플래그 출력들을 가진다. 제1 플래그 버퍼의 출력은 데이터가 제1 데이터 버스로부터 제1 데이터 저장 장소로 전송될 때 제1 버스 클락 신호에 대하여 동기적으로 세트되고, 데이터가 제1 데이터 저장 장소로부터 제2 데이터 버스로 전송될 때 제2 버스 클락 신호에 대하여 동기적으로 지워진다. 제2 플래그 버퍼 출력은 데이터가 제1 데이터 버스로부터 제2 데이터 저장 장소로 전송될 때 제1 버스 클락 신호에 대하여 동기적으로 세트되고, 데이터가 제2 데이터 저장 장소로부터 제2 데이터 버스로 전송될 때 제2 버스 클락 신호에 대하여 동기적으로 지워진다. 제1 동기기는 제1 플래그 버퍼와 제2 버스 인터페이스 상태 장치 사이에 연결된다. 제2 동기기는 제2 플래그 버퍼와 제2 버스 인터페이스 상태 장치 사이에 연결된다. 제1 동기기는 제1 플래그 출력이 변화된 후 제1 플래그 출력이 제2 버스 인터페이스 상태 장치에 의하여 수신될 수 있기 전에 제1 플래그 출력이 적어도 소정의 시간 동안 지연되도록 제1 플래그 출력을 제2 버스 클락 신호에 동기시킨다. 제2 동기기는 제2 플래그 출력이 변화된 후 제2 플래그 출력이 제2 버스 인터페이스 상태 장치에 의하여 수신될 수 있기 전에 제2 플래그 출력이 적어도 소정의 시간 동안 지연되도록 제2 플래그 출력을 제2 버스 클락 신호에 동기시킨다.
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 특히, 하나의 동기 데이터 버스로부터의 데이터를 상호간에 비동기하는 다른 동기 데이터 버스로의 전송을 제어하는 디지털 시스템에 관한 것이다.
본 발명은 첨부되는 도면과 연관하여 아래에서 기술될 것이다.
도 1은 두 개의 비동기적인 버스들 사이의 전형적인 인터페이스를 나타낸다.
도 2는 도 1의 인터페이스에 사용되는 데이터 유효 플래그 버퍼의 바람직한 실시예를 나타낸다.
도 3은 본 발명의 개선된 동기화 회로를 통합하는 도 1의 두 개의 동기적인 버스들 사이의 전형적인 인터페이스를 나타낸다.
도 4는 도 1의 버스 2 인터페이스 상태 장치의 적절한 부분에 대한 전형적인 상태 다이어그램을 나타낸다.
도 5는 도 3의 버스 2 인터페이스 상태 장치의 적절한 부분에 대한 전형적인 상태 다이어그램을 나타낸다.
도 1은 공지된 시스템에 따른 두 개의 상호 비동기하는 버스들 사이의 전형적인 인터페이스(100)를 도시한다. 도 1에 도시된 바와 같이, 인터페이스는 제1 버스(버스 1)(110)에 연결된다. 본 명세서에서 기술되는 실시예에서, 제1 버스(110)는 바람직하게는 인텔(INTEL) 계열의 마이크로프로세서에 기초한 컴퓨터들(예, INTEL 80486, INTEL 펜티움, INTEL P6, 등)과 같은, 마이크로프로세서-기반 컴퓨터들에서 사용되는 주변 요소 상호연결(Peripheral Component Interconnect, 이하, 'PCI'라 함) 버스에 대한 확립된 표준에 따라서 작동하는 PCL 버스이다. 기본적으로, 제1 버스(110)는 제1 버스(110)상으로 데이터를 전송하는 복수개의 데이터 라인들(BUS 1 DATA(112)로서 나타나는), 제1 버스(110) 상에 전송된 데이터에 대한 소스 또는 목적 어드레스를 공급하는 복수개의 어드레스 라인들(미도시), 제1 버스(110) 상의 데이터 전송을 제어하는 제어 신호들을 전달하는 복수개의 제어 라인들(CONTROL(114)로서 나타나는)을 가지는 32-비트 데이터 버스이다. 제1 버스(110)는 게다가 제1 버스(110) 상에 어드레스, 데이터 및 제어 신호들을 동기시키는 클락 신호를 가지는 제1 버스 클락 라인(BUS1 CLK)(116)을 또한 포함한다. 예를 들면, BUS1 CLK 라인(116) 상의 제어 신호는 33MHz에서 유리하게 작동한다. 제1 버스(110)의 작동은 당업자는 주지의 사실이며, 본 명세서에서는 자세히 기술되지 않을 것이다. 제1 버스(110)는 예를 들어, 제1 버스(110)에 대한 데이터 소스가 될 수 있는 주변 제어기와 같은 컴퓨터 시스템 내의 다른 요소들(미도시)과 또한 연결된다.
인터페이스는 본 명세서에 기술된 실시예에서, 바람직하게는 예를 들어, P6와 같은 고속 프로세서 버스인 제2 버스(120)에 또한 연결된다. 바람직한 실시예에서는, 제2 버스(120)는 INTEL P6 마이크로프로세서와 통신하고 제1 버스(110)에 대하여 비동기하여 작동하는 64-비트 버스이다. 예를 들어, 제2 버스(120)는 50MHz, 60 MHz, 또는 어떤 다른 주파수에서 제2 버스에 결합되는 INTEL P6 마이크로프로세서의 클락 주파수에 따라서 유리하게 작동할 수 있다. 비록 본 명세서에서는 제2 버스(120)에 일치하여 기술되었지만, 제1 버스(110)에 비동기하여 작동하는 다른 프로세서 버스들이 또한 사용될 수 있다. 제2 버스(120)의 어떤 특정의 특성들은 제2 버스(120) 상의 데이터 전송들이 제1 버스(110) 상의 데이터 전송들에 비동기하여 발생한다는 점 이외에는 본 발명에는 적절치 않다. 제2 버스(120)는 또한 복수개의 데이터 라인들(122), 복수개의 어드레스 라인들(미도시), 복수개의 제어 라인들(124) 및 BUS2 CLK 라인(126)을 포함한다.
제1버스(110)와 제2 버스(120)의 비동기적인 관계 때문에, 인터페이스(100)는 라인(114)상의 제1 버스 제어 신호들과 BUS1 CLK 라인(116)의 제어 신호의 제어하에서 데이터 라인들(112)을 통하여 제1 버스(110)로부터의 데이터를 수신하는 데이터 버퍼(130)를 더 포함한다. 데이터 버퍼(130)는 데이터를 버퍼하고 제어 라인들(120) 상의 제어 신호들의 제어하에서 그리고 BUS2 CLK 라인(126) 상의 클락 신호에 동기하여 버퍼된 데이터를 제2 버스(120)에 제공한다.
데이터 버퍼(130)는 복수개의 데이터 저장 장소들(132)을 가진다. 도 1의 실시예에서는, DATABUF0, DATABUF1, DATABUF2 및 DATABUF3으로 라벨된 단지 네 개의 저장 장소들(132)만이 도시된다. 두 버스들 사이의 데이터의 부가적인 저장을 제공하기 위하여 부가적인 저장 장소들이 포함될 수 있다는 점은 다음의 기술로부터 이해된다. 예를 들어, 특히 바람직한 일 실시예에서, 여덟 개의 저장 장소들이 포함된다. 본 발명은 도시된 네 개의 저장 장소들에 비추어 쉽게 이해될 수 있다. 각 저장 장소들(132)은 64 데이터 신호들을 저장한다. 저장 장소들(132)의 입력들은 공통적으로 BUS1 DATA(112)에 연결된다. 저장 장소들(132)의 출력들은 64 비트 폭 4:1 멀티플렉서(MUX)(134)에 입력들로서 제공된다. 다시, 부가적인 저장 장소들(예, 8개의 저장 장소들)이 제공하면, 멀티플렉서(134)는 따라서 부가적인 입력 세트들을 제공하도록 확장된다(예, 멀티플렉서(134)는 그러한 실시예에서는 8:1 멀티플렉서일 것이다). 멀티플렉서(134)는 한 쌍의 선택 라인들(142)를 통하여 버스 2 인터페이스 상태 장치(140)에 의해 제어된다. 특히, 버스 2 인터페이스 상태 장치는 이전의 데이터가 제2 버스(120)로 전송되는 저장 장소 뒤의 다음 높게 번호가 매겨진 저장 장소를 가리키는 출력 지시기를 유지한다. 출력 지시기는 0,1,2,3,DATABUF3 저장 장소 다음에 오는 DATABUF0를 가리도록 0을 카운터하는 모듈로-4 출력 지시기라는 점은 이해될 것이다.
선택 라인들(142)상의 출력 지시값에 응답하여, 멀티플렉서(134)는 제2 버스(120)에 전달되는 출력 데이터의 소스로서 네 개의 저장 장소들(132) 중의 하나로부터의 데이터를 선택하는데, 선택된 저장 장소의 데이터가 유효하다고 가정하여, 아래에 논의될 것이다. 선택된 데이터가 제2 버스에 동기되도록 그 데이터는 라인(126) 상의 BUS2 CLK 신호에 의하여 클락되는 64-비트 폭 레지스터(150)에 저장된다. 더욱이, 레지스터(150)는 인에이블 라인(152)상의 인에이블 입력 신호에 의하여 제어된다. 인에이블 라인(152)이 비활성화되면, 레지스터(150)에 저장된 데이터에 관계없이 레지스터(150)의 데이터 출력들은 비활성화된다. 인에이블 라인(152)이 활성화되면, 레지스터(150)는 복수개의 BUS2 DATA 라인들(122)을 통하여 제2 버스(120)상으로 저장된 데이터를 출력한다. 인에이블 라인(152)은 단지 인터페이스(100)가 선택될 때만 레지스터(150)가 데이터를 제2 버스(120)에 전송시키는 버스 2 인터페이스 상태 장치(140)에 의해서 제어된다.
제1 버스(110)로부터의 데이터는 버스 1 인터페이스 상태 장치(160)의 제어하에 데이터 버퍼(130)에 저장된다. 버스 1 인터페이스 상태 장치(160)는 제어 라인들(114)과 BUS1 CLK 라인(116)을 통하여 제1 버스(110)로부터 제어 신호들과 BUS1 CLK 신호를 수신한다. 버스 1 인터페이스 상태 장치(160)는 선택된 데이터 스트로브를 여덟 개의 데이터 스트로브 라인들(164) 중의 하나를 통하여 데이터 저장 장소(132)에 발생시키는 제어 라인들(114)에 의하여 전달되는 데이터 준비 제어 신호에 응답한다.(두 개의 데이터 스트로브 라인들은 32 데이터 비트를 제1 버스(110)에서 각 데이터 저장 장소(132)의 각각의 위쪽과 아래쪽으로 스트로브하는 바람직한 실시예에서의 각 데이터 저장 장소(132)에 제공된다.) 데이터 스트로브 라인들(164)은 BUS1 DATA 라인들(112) 상의 데이터를 데이터 스트로브 라인들(164) 중의 활성화되는 하나에 대응하는 데이터 저장 장소들(132) 중의 선택된 하나에 저장되도록 데이터 저장 장소들(132)에 클락 신호로서 작동한다. 버스 1 인터페이스 상태 장치(160)는 원형의 선입 선출(FIFO: first-in/first-out) 버퍼와 같은 데이터 버퍼(130)를 제어하는 일반적인 방법으로 작동한다. 즉, 버스 1 인터페이스 상태 장치(160)는 입력 지시기를 입력 장소들(132) 중에서 데이터 버퍼(130) 내에 다음 이용가능한 비어있는 저장 장소인 현재의 입력장소(132)에 유지시킨다. 데이터가 선택된 저장 장소(132)에 기입되면, 입력 지시기는 다음으로 높은 숫자로 증가한다. 입력 지시기는 입력 지시기가 3의 값에서 증가되면, 0으로 변하는 모듈로-4 지시기(네 개의 저장 장소들을 가지는 기술된 실시예에서)이다. 그러므로 데이터 버퍼(130)는 DATABUF3에 인접하는 DATABUF0를 가지는 "원형의" 버퍼로 간주될 수 있다.
버스 1 인터페이스 상태 장치(160)는 라인들(166)의 세트 상에 복수개(예, 네 개)의 데이터 유효 플래그 버퍼 장소들을 구비하는 플래그 버퍼(170)의 각각 세트 입력들(S)에 입력으로 제공되는 복수개의 플래그 세트 신호들을 출력한다. 도 2에 연관하여 아래에 좀더 상세히 기술된 바와 같이, 신호 라인(116)상의 플래그 버퍼(170) 내의 각 플래그 저장 셀들에 각각의 제1 클락 입력들로서 제공되는 플래그 세트 신호들은 BUS1 CLK 신호에 동기된다. 플래그 버퍼(170)는 데이터 버퍼(130) 내의 각 버퍼 장소들(DATABUF0...DATABUF3)(132)에 하나의 유효 데이터 플래그가 대응함으로써 네 개의 유효 데이터 플래그들(FLAG0, FLAG1, FLAG2, 및 FLAG3)을 저장한다. 비활성화하는 데이터 유효 플래그는 대응하는 버퍼 장소(132)는 비어있고 데이터는 그 버퍼 장소(132)에 저장될 수 있다는 것을 가리킨다. 활성화 데이터 유효 플래그는 대응하는 버퍼 장소(132)는 그 안에 저장된 유효 데이터를 가지고 더 이상 데이터는 그 버퍼 장소(132)에 저장될 수 없다는 것을 가리킨다. 활성화 데이터 유효 플래그는 또한 대응하는 버퍼 장소 내의 데이터는 이미 제2 버스(120)에 전송되었음을 버스 2 인터페이스 상태 장치(아래에서 언급됨)에 표시한다. 데이터가 각각의 데이터 버퍼 장소에 저장되었을 때 데이터 유효 플래그는 세트된다. 데이터가 각각의 데이터 버퍼 장소로부터 제2 버스(120)에 전송되었을 때 데이터 유효 플래그는 지워진다.
플래그 버퍼(170) 내의 유효 데이터 플래그들은 유효 데이터 플래그 라인들(172)의 세트를 통하여 제1 4:1 플래그 멀티플렉서(MUX)(180)에 입력들로서 제공된다. 제1 플래그 멀티플렉서(180)는 버스 1 인터페이스 상태 장치(160)로부터의 한 쌍의 버스 1 선택 라인들(182)에 의하여 제어된다. 버스 1 인터페이스 상태 장치(160)는 입력 지시기의 현재값을 인코드하도록 버스 1 선택 라인들(182)의 쌍을 제어한다. 그래서, 멀티플렉서(180)의 출력이 현재 입력 장소의 데이터가 이미 유효한지 여부를 가리키는 데이터 유효 플래그가 되도록 제1 플래그 멀티플렉서(180)는 입력 지시기가 현재 카리키는 데이터 저장 장소에 대응하는 데이터 유효 플래그를 선택한다. 즉, 선택된 데이터 유효 플래그는 선택된 데이터 버퍼 장소에 이전에 저장된 데이터가 이미 제2 버스(120)에 전송되었는지(데이터 유효 플래그가 "무효"가 될 것이다) 또는 선택된 데이터 버퍼 장소에 이전에 저장된 데이터가 아직 제2 버스(120)에 전송되지 않았는지(데이터 유효 플래그가 "유효"가 될 것이다)를 가리킨다.
플래그 버퍼(170) 내의 유효 데이터 플래그들은 라인(174) 상의 "시스템 리셋" 신호를 통하여 알려진 상태(예, 모든 데이터 유효 플래그들이 비활성화)로 리셋될 수 있다. "시스템 리셋" 신호는 컴퓨터 시스템에 전원이 켜질 때, 컴퓨터 시스템이 사용자에 의해 리셋될 때, 이와 같은 때에 발생되는 일반적인 리셋 신호이다.
제1 플래그 멀티플렉서(180)의 출력은 제1 버스 1 동기기 플립-플럽(192)을 구비하는 버스 1 유효 데이터 동기기(190)에 데이터 입력으로 제공된다. 제1 버스 1 동기기 플립-플럽(192)의 데이터 출력은 제2 버스 1 동기기 플립-플럽(194)의 데이터 입력으로 제공된다. 두 개의 버스 1 동기기 플립-플럽들(192,194)은 클락 라인(116) 상의 BUS1 CLK 신호에 의하여 클락된다. 제2 버스 1 동기기 플립-플럽(194)의 데이터 출력은 DATA VALID 1 데이터 라인(196)을 통하여 버스 1 인터페이스 상태 장치(160)의 입력으로 제공된다. 그래서 선택된 유효 플래그는 상태 장치 내의 입력 지시기에 의하여 현재 선택된 데이터 저장 장소가 새로운 데이터의 저장을 위하여 이용가능한지 또는 새로운 데이터가 수납될 수 없는지를 가리키는 버스 1 인터페이스 상태 장치에 피드백으로 제공된다. 다른 형태의 데이터 동기기들이 또한 사용될 수 있음은 이해될 것이다.
플래그 버퍼(170) 내의 유효 데이터 플래그들은 유효 데이터 플래그 라인들(172)의 세트를 통하여 제2 4:1 플래그 멀티플렉서(MUX)(200)에 입력으로 제공된다. 제2 플래그 멀티플렉서(200)는 버스 2 인터페이스 상태 장치(140)로부터의 한 쌍의 버스 2 선택 라인들(202)에 의하여 제어된다. 버스 2 선택 라인들(202)은 제2 버스(120)에 출력되는 데이터의 소스로서 데이터 버퍼(130) 내의 데이터 저장 장소(132)를 선택하는 출력 지시기 라인들(142)에 부합하도록 제어된다. 그래서, 제2 플래그 멀티플렉서(200)의 출력은 현재 선택된 데이터 저장 장소가 유효 데이터를 가지는지 또는 그 장소의 데이터가 이미 전송되어 더 이상 유효하지 않는지를 지시한다.
제2 플래그 멀티플렉서(200)의 출력은 제1 버스 2 동기기 플립-플럽(212)을 구비하는 버스 2 유효 데이터 동기기(210)에 데이터 입력으로 제공된다. 제1 버스 2 동기기 플립-플럽(212)의 데이터 출력은 제2 버스 2 동기기 플립-플럽(214)에 데이터 입력으로 제공된다. 두 개의 버스 2 동기기 플립-플럽들(212,214)은 클락 라인(126) 상의 BUS2 CLK 신호에 의하여 클락된다. 제2 버스 2 동기기 플립-플럽(214)의 출력은 DATA VALID 2 데이터 라인(216)을 통하여 버스 2 인터페이스 상태 장치(140)에 입력으로 제공된다. 그래서, 버스 2 인터페이스 상태 장치(140)는 출력 지시기가 현재 가리키고 있는 데이터 저장 장소 내의 데이터의 유효성에 대하여 피드백으로 제공받는다.
플래그 버퍼(170) 내의 데이터 유효 버퍼 장소들(즉, FLAG0, FLAG1, FLAG2 및 FLAG3)은 버스 2 인터페이스 상태 장치(140)에 의하여 발생되는 네 개의 플래그 청산 라인들(220)에 의하여 선택적으로 지워질 수 있다. 각 플래그 청산 라인(220)은 데이터 유효 버퍼 장소들 중의 하나에 신호 라인(126) 상의 BUS2 CLK에 동기하여 각각의 플래그 청산 입력(C)으로서 제공된다. 데이터 버퍼(130) 내의 각각의 저장 장소로부터의 데이터가 제2 버스(120)에 전송될 때 각각의 플래그 청산 라인들은 활성화된다. 예를 들어, 버스 2 인터페이스 상태 장치(140)가 데이터 버퍼(130) 내의 DATABUF2 저장 장소 내의 데이터를 제2 버스(120)에 출력 데이터로서 선택할 때, 버스 2 인터페이스 상태 장치(140)는 FLAG2 데이터 유효 버퍼 장소에 대한 청산(C) 입력으로 제공되는 플래그 청산 라인들(220) 중의 대응하는 하나를 활성화시킨다. FLAG2 데이터 유효 버퍼 장소는 신호 라인(126) 상의 BUS2 CLK에 동기하여 지워진다.
도 2는 도 1의 데이터 유효 저장 장소들(170) 중의 하나의 바람직한 실시예를 나타낸다. 특히, 도 2는 FLAG0 데이터 유효 저장 장소(170A)를 나타낸다. FLAG1, FLAG2 그리고 FLAG3에 대한 다른 세 가지 데이터 유효 저장 장소들은 바람직하게는 FLAG0 데이터 유효 저장 장소와 동일하다. 도시된 바와 같이, 데이터 유효 저장 장소(170)는 제1 토글 플립-플럽(300) 및 제2 토글 플립-플럽(302)을 구비한다.
제1 토글 플립-플럽(300)은 신호 라인(116) 상의 BUS1 CLK 신호를 수신하는 클락 입력(310)을 가진다. 제1 토글 플립-플럽(300)은 제1 2-입력 AND 게이트(314)의 출력을 수신하는 토글 인에이블(TE: toggle enable) 입력(312)을 가진다. 제1 AND 게이트(314)는 버스 1 인터페이스 상태 장치(160)로부터 신호 라인(166A)(도 1의 세트 유효 데이터 플래그 라인들(166) 중의 하나) 상의 SET_VALID_0 신호를 수신하는 '하이 활성화'인 제1 입력을 가진다. 제1 AND 게이트(314)는 신호 라인(172A)(도 1의 신호 라인들(172) 중의 하나) 상에 피드백으로 FLAG0 데이터 유효 플래그를 수신하는 '로우 활성화'인 제2 입력을 가진다. 제1 토글 플립-플럽(300)은 바람직한 실시예에서 BUS1 CLK 신호의 '로우'에서 '하이'로의 천이에 의하여 상태(즉, '로우' 로직 레벨로부터 '하이' 로직 레벨로 또는 '하이' 로직 레벨로부터 '로우' 로직 레벨로)를 변화시키는 Q 출력(316)을 가진다. 제1 토글 플립-플럽(300)의 Q 출력 신호만이 FLAG0 데이터 유효 플래그가 비활성화함과 동시에 신호 라인(166A) 상의 SET_VALID_0 신호가 활성화할 때 변화한다. SET_VALID_0 신호가 활성화하고 FLAG0 데이터 유효 플래그가 비활성화할 때, AND 게이트(314)의 출력은 활성화하고, BUS1 CLK 신호의 '로우'에서 '하이'로의 각 천이에 대해 제1 토글 플립-플럽(300)의 Q 출력은 '하이' 상태에서 '로우' 상태로 또는 '로우' 상태에서 '하이' 상태로 변한다. SET_VALID_0 신호가 비활성화하거나 또는 FLAG0 데이터 유효 플래그가 활성화하면, 제1 토글 플립-플럽(300)의 Q 출력은 BUS1 CLK 신호의 변화에 관계없이 변하지 않을 것이다.
제2 토글 플립-플럽(302)은 신호 라인(126) 상의 BUS2 CLK 신호를 수신하는 클락 입력(330)을 가진다. 제2 토글 플립-플럽(302)은 제2 2-입력 AND 게이트(334)의 출력을 수신하는 토글 인에이블(TE) 입력(332)를 가진다. 제2 AND 게이트(334)는 버스 2 인터페이스 상태 장치(140)로부터 신호 라인(220A)(도 1의 청산 유효 데이터 플래그 라인들(220) 중의 하나) 상의 CLR_VALID_0 신호를 수신하는 '하이 활성화'인 제1 입력을 가진다. 제2 AND 게이트(334)는 신호 라인(172A) 상에 피드백으로 FLAG0 데이터 유효 플래그를 수신하는 '하이 활성화'인 제2 입력을 가진다. 제2 토글 플립-플럽(302)은 바람직한 실시예에서 BUS2 CLK 신호의 '로우'에서 '하이'로의 천이에 의하여 상태를 변화시키는(즉, 로우 로직 레벨로부터 하이 로직 레벨로 또는 하이 로직 레벨로부터 로우 로직 레벨로) Q 출력(336)을 가진다. FLAG0 데이터 유효 플래그가 활성화하고 동시에 신호 라인(220A) 상의 CLR_VALID_0 신호가 활성화할 때 제2 토글 플립-플럽(302)의 Q 출력 신호만 변한다. CLR_VALID_0 신호가 활성화하고 FLAG0 데이터 유효 플래그가 활성화할 때, AND 게이트(334)의 출력은 활성화하고, BUS2 CLK 신호의 '로우'에서 '하이'로의 각 천이에 대해 제2 토글 플립-플럽(302)의 Q 출력은 '하이' 상태에서 '로우' 상태로 또는 '로우' 상태에서 '하이' 상태로 한번 변할 것이다. CLR_VALID_0 신호가 비활성화하거나 또는 FLAG0 데이터 유효 플래그가 비활성화하면, BUS2 CLK 신호의 변화에 관계없이 제2 토글 플립-플럽(302)의 Q 출력은 변하지 않을 것이다.
제1 토글 플립-플럽(300)은 리셋(RST) 입력(340)을 가지고 제2 토글 플립-플럽(302)은 리셋(RST) 입력(342)을 가진다. RST 입력들(340,342)는 신호 라인(174) 상의 '시스템 리셋'을 수신한다. '시스템 리셋' 신호가 활성화할 때, 두 개의 토글 플립-플럽들(300,302)은 각각의 Q 출력들이 그들의 비활성화 '로우' 상태로 청산되도록 리셋된다.
제1 및 제2 토글 플립-플럽들(300,302)의 Q 출력들은 배타적-OR 게이트(350)의 각각 제1 및 제2 입력들로 제공된다. 배타적-OR 게이트(350)의 출력은 그래서 FLAG0 데이터 유효 플래그를 FLAG0 데이터 유효 저장 장소의 출력인 라인(172A)에 제공한다. 라인(172A) 상의 FLAG0 데이터 유효 플래그는 또한 각각의 AND 게이트들(314,334)를 통하여 두 개의 토글 플립-플럽들(300,302)에 피드백으로 제공되는데, 위에서 언급한 바이다. 배타적-OR 게이트(350)는 두 개의 Q 출력들이 서로 다를 때(즉, 하나의 Q 출력은 활성화 '하이'이고 다른 Q 출력은 활성화 '로우'이다) 활성화 FLAG0 데이터 유효 플래그를 라인(172A) 상에 제공하고 두 개의 Q 출력들이 동일한 로직 레벨을 가질 때(즉, 두 개의 Q 출력 모두 활성화 '하이'이거나 두 개의 Q 출력 모두 활성화 '로우') 비활성화 FLAG0 데이터 유효 플래그를 라인(172A) 상에 제공하도록 두 개의 입력들에 응답하여 작동한다. 위에서 언급한 바와 같이, 배타적-OR 게이트(350)의 출력이 제2 토글 플립-플럽(302)의 Q 출력이 제1 토글 플립-플럽(300)의 Q 출력과 다르다는 것을 가리키는 '활성화 하이'일 때, CLR_VALID_0 신호 라인(220A)이 활성화되면 제2 토글 플립-플럽(302)이 인에이블되도록 단지 제2 AND 게이트(334)만이 잠재적으로 인에이블된다. 제2 토글 플립-플럽(302)은 신호 라인(126)상의 BUS2 CLK 신호의 다음 '로우'에서 '하이'로의 천이에 응답하여 토글된다. 이것이 배타적-OR 게이트(350)의 출력이 비활성화되게 제2 토글 플립-플럽(302)의 Q 출력을 제1 토글 플립-플럽(300)의 Q 출력과 동일하게 만든다. 배타적-OR 게이트(350)의 출력의 비활성화 상태는 FLAG0 데이터 유효 플래그가 청산되었음(즉, 데이터는 무효이다)을 가리킨다. 게다가, 제2 토글 플립-플럽(302)은 토글링으로부터 디스에이블되고, 제1 토글 플립-플럽(300)은 SET_VALID_0 신호 라인(166A)이 버스 1 인터페이스 상태 장치(160)에 의하여 활성화되면 토글하도록 인에이블된다. 그러므로 FLAG0 유효 데이터 플래그는 BUS1 CLK 신호에 대하여 동기적으로 세트되고 BUS2 CLK 신호에 대하여 동기적으로 지워진다.
위에서 기술한 토글 플립-플럽에 기초한 데이터 저장 장소들에 관한 부가적인 정보들은, 예를 들어, 본 출원의 양수인에게 양도된 미국 특허 번호 5,083,049에서 찾을 수 있으며, 본 명세서에 참조로서 통합된다. 당업자는 다른 데이터 유효 저장 장소들이 본 발명과 관련하여 사용될 수 있음을 이해할 것이다.
다시 도 1을 참조하면, 버스 1 유효 데이터 동기기(190)와 버스 2 유효 데이터 동기기(210)의 목적들은 유효 데이터 플래그들에서의 변화들이 버스 1 인터페이스 상태 장치(160)와 버스 2 인터페이스 상태 장치(140)에 두 상태 장치를 제어하는 각각의 클락들에 동기하여 확실히 제공된다는 것을 알 수 있다. 특히, 위에서 언급한 바와 같이, 유효 데이터 플래그들은 BUS1 CLK 신호에 대하여 동기하여 세트되고 BUS2 CLK 신호에 대하여 동기하여 지워진다. 그래서, 유효 데이터 플래그는 BUS1 CLK 신호에 동기하여 비활성화 상태에서 활성화 상태로 변화하고 BUS2 CLK 신호에 동기하여 활성화 상태에서 비활성화 상태로 변화할 것이다. BUS1 CLK 신호가 BUS2 CLK 신호에 동기하므로, 버스 1 인터페이스 상태 장치(160)는 내부 상태 천이들에 대하여 비동기적으로 데이터 유효 플래그들의 '활성화로부터 비활성화로'의 천이들을 수신한다. 그래서, 버스 1 인터페이스 상태 장치가 유효 데이터 플래그들의 상태를 안정화하고 변하지 않도록 요구하는 동안에는 천이들이 일어날 가능성이 있다. 버스 1 동기기(190)는 유효 데이터 플래그들의 '하이에서 로우로'의 천이들을 BUS1 CLK와 그래서 버스 1 인터페이스 상태 장치(160)의 내부 천이들에 동기시킨다. 이와 유사하게, 버스 2 동기기(210)는 유효 데이터 플래그들의 '로우에서 하이로'의 천이들을 BUS2 CLK와 이에 따른 버스 2 인터페이스 상태 장치(140)의 내부 천이를 동기시킨다. 각각의 유효 데이터 플래그는 데이터가 현재 선택된 입력 장소로 기입되는 것 처럼 세트되기 때문에, 유효 데이터 플래그들의 '로우에서 하이로'의 천이들이 BUS2 CLK에 동기한다는 점은 특히 중요하다. 현재 선택된 입력 장소가 또한 현재 선택된 출력 장소(즉, 버스 2 인터페이스 상태 장치(140)는 모든 이전의 저장 데이터를 출력한다)라면, 버스 2 인터페이스 상태 장치(140)는 유효 데이터 플래그가 활성화된다는 것을 즉시 감지하고 제2 버스(120)에 데이터를 출력할 것이다. 그런데, 특히 각각의 데이터 저장 장소에 데이터가 저장되고 멀티플렉서(134)를 통하고 레지스터(150)를 통하여 전파되기 전에 유효 데이터 플래그가 비활성화 상태로부터 활성화 상태로 천이한다면, 이것은 잠재적으로 버스 2 인터페이스 상태 장치(140) 내에 준안정성과 경쟁 조건을 유발한다. 버스 2 동기기는 버스 2 인터페이스 상태 장치(140)가 데이터를 제2 버스(120)에 출력하기 전에 데이터가 안정하다는 것을 보장한다.
도 1의 버스1 대 버스2 인터페이스(100)는 의도된 목적에 대해 잘 동작한다; 그러나, 인터페이스(100)는 특히 데이터가 버스트 모드에서 인터페이스(100)에 또는 인터페이스(100)로부터 전송될 때, 인터페이스(100)의 전체 데이터 율을 감소시키는 버스 1 동기기(190)와 버스 2 동기기(210)에 의하여 발생되는 동기화 지연을 포함한다. 문제점은 데이터 버퍼(130) 내의 네 개의 모든 데이터 버퍼 장소들(DATABUF0...DATABUF3)이 채워지고 대응하는 유효 데이터 플래그들(FLAG0...FLAG3)이 세트될 때 버스 2 인터페이스 상태 장치(140)의 작동을 고려함으로써 이해될 수 있다. 버스 2 인터페이스 상태 장치(140)가 제1 데이터 버퍼 장소(예, DATABUF0)로부터 데이터를 전송한 후에, 버스 2 인터페이스 상태 장치(140)는 멀티플렉서(134)를 통하여 다음 버퍼 장소(예, DATABUF1)를 선택하고 또한 제2 플래그 멀티플렉서(200)에 선택 라인들(202)을 통하여 다음 유효 데이터 플래그(예, FLAG1)를 선택한다. 비록 제2 버퍼 장소(DATABUF1)가 많은 수의 클락 주기들에 대해서는 안정될 수 있으나, 버스 2 인터페이스 상태 장치(140)는 데이터를 제2 버스(120)에 출력하기 전에 버스 2 동기기(210)에 의하여 동기되는 유효 데이터 플래그를 아직 기다려야 한다. 그래서, 유효 데이터 플래그를 동기하기 위하여 두 개의 불필요한 BUS2 CLK 신호들이 들어간다.
버스 1 인터페이스 상태 장치가 입력 지시기를 다음 장소로 증가시킬 때 유사한 불필요한 지연이 들어간다. 비록 다음 데이터 저장 장소는 많은 수의 클락 주기에 대하여 비어질 수 있으나, 버스 1 인터페이스 상태 장치가 선택 라인들(182)을 제1 플래그 멀티플렉서(180)로 변경할 때 버스 1 인터페이스 상태 장치가 유효 데이터 플래그가 비어지고 그러므로 데이터 저장 장소가 이용가능하게 되는 것을 결정할 수 있기 전에 선택된 플래그가 버스 1 동기기(180)를 통하여 동기되는 두 클락 주기들을 기다려야 한다.
출원인은 유효 데이터 플래그들을 버스 2 플래그 멀티플렉서(200)에 적용하기에 앞서 유효 데이터 플래그들을 동기시킴으로써 불필요한 지연은 회피될 수 있다는 것을 알아냈다. 개선된 인터페이스(400)는 도 3에 도시되며 동일한 번호들은 도 1과 관련하여 위에서 기술된 동일한 요소들을 나타낸다. 버스 2 인터페이스 상태 장치(140)는 변형되어 도 3의 버스 2 인터페이스 상태 장치(404)로 나타난다. 유사하게, 버스 1 인터페이스 상태 장치(160)는 변형되어 도 3의 버스 2 인터페이스 상태 장치(406)로 나타난다.
도 3에 도시된 바와 같이, 도 1의 제1 플래그 멀티플렉서(180)의 출력상의 단일 버스 1 동기기(190)는 네 개의 버스 1 동기기들(410,412,414,416)로써 대체되었다. 각 버스 1 동기기(410,412,414,416)는 네 개의 데이터 유효 플래그 버퍼 장소들(170)의 각각의 것의 출력에 연결된 각각의 입력을 가지며 제1 플래그 멀티플렉서(180)의 네 개의 입력들 중의 하나에 연결된 각각의 출력을 가진다. 제1 버스 1 동기기(410)에 대하여 더 도시된 바와 같이, 각 동기기는 세로로 1열이 되어 연결되고 신호 라인(116) 상의 BUS1 CLK에 의하여 클락되는 한 쌍의 플립-플럽들(420,422)을 구비한다.
유사하게, 단일 버스 2 동기기(210)는 네 개의 버스 2 동기기들(430,432,434 및 436)로써 대체되었다. 각 버스 2 동기기(430,432,434,436)는 네 개의 데이터 유효 플래그 버퍼 장소들(170)의 각각의 출력에 연결된 각각의 입력을 가지며 제2 플래그 멀티플렉서(200)의 네 개의 입력들 중의 하나에 연결된 각각의 출력을 가진다. 제1 버스 2 동기기(430)에 대하여 더 도시된 바와 같이, 각 동기기는 세로로 1열이 되어 연결되고 신호 라인(126) 상의 BUS2 CLK에 의하여 클락되는 한 쌍의 플립-플럽들(440,442)을 구비한다.
데이터 유효 플래그들이 버스 1 인터페이스 상태 장치(406)와 그리고 버스 2 인터페이스 상태 장치(404)와 적절히 동기된다는 것을 보장함으로써 개선된 인터페이스(400)가 도 1의 인터페이스(100)의 목적을 수행한다는 것을 알 수 있다. 예를 들어, 버스 2 인터페이스 상태 장치(404)는 데이터 버퍼(130)내의 모든 데이터를 출력하고 다음 데이터가 저장 장소(132)에 저장되는 것을 기다리고 있다면, 입력 지시기와 출력 지시기는 동일한 저장 장소(132)를 가리킬 것이다. 버스 1 인터페이스 상태 장치는 유효 데이터 플래그(예, FLAG0)를 세트하면, FLAG0 플래그 버퍼(170A)(도 2)의 출력은 활성화된 입력으로 버스 2 인터페이스 상태 장치(404)로 적용되기 전에 활성화 상태로 천이하고 제1 버스 2 동기기(430)를 통하여 전파되어 버스 2 인터페이스 상태 장치(404)와 동기된다. 그래서, FLAG0 플래그 버퍼(170A)의 활성화된 출력은 필연적으로 버스2 클락에 동기되고 그래서 버스 2 인터페이스 상태 장치(404)에 동기될 것이다. FLAG0 플래그 버퍼(170A)의 활성화된 출력은 DATABUF0 데이터 저장 장소(132)에 단지 저장된 데이터가 안정하게 하는 필수적인 시간을 제공하기 위하여 지연될 것이다. 한편, 버스 2 인터페이스 상태 장치가 선택되는 다음 버퍼 장소(132)가 다수의 클락 주기들에 대하여 거기에 저장된 데이터를 가지는 데이터 버퍼(130)로부터 데이터 버스트를 출력한다면, 데이터 유효 플래그(예, FLAG1)는 각각의 버스 2 동기기(예, 제2 버스 2 동기기(432))를 통하여 미리 전파될 것이고 제2 플래그 멀티플렉서(200)의 입력에서 활성화될 것이다. 그래서, 버스 2 인터페이스 상태 장치가 FLAG1 데이터 유효 플래그 버퍼의 출력을 선택하도록 선택 라인들(202)를 변경하면, 플래그의 활성화 상태가 더 이상의 지연없이 버스 2 인터페이스 상태 장치(404)에 즉시 공급될 것이다.
도 3의 개선된 인터페이스의 잇점을 더 이해하는데 조력하기 위하여, 도 4는 도 1의 버스 2 인터페이스 상태 장치(140)의 적절한 부분의 전형적인 상태 다이어그램(500)을 나타내고, 도 5는 도 3의 버스 2 인터페이스 상태 장치(404)의 적절한 부분의 전형적인 상태 다이어그램(510)을 나타낸다. 각 상태 장치(140,404)는 본 발명과 관계가 없고 본 명세서에에서 언급되지 않으며 도 4와 도 5에 도시되지 않은 부가적인 기능들을 포함한다. 도 4와 도 5에서, 상태 장치의 적절한 내부 상태들은 그 안에 상태를 명명하는 원들로써 통상적인 방법으로 나타낸다. 원들을 연결하는 라인들은 하나의 상태로부터 다른 상태로 또는 하나의 상태에서 그 자신의 상태로의 도 1 및 도 2의 BUS2 CLK 신호에 동기하여 발생하는 상태 천이들을 나타낸다.
상태 천이에 앞서는 조건들은 상태 천이를 발생시키기 위해서 앰프샌드("&")들에 의하여 결합되는 모든 조건들은 만족되어야 한다는 것을 의미하는 AND 필요 요건을 나타내는 앰프샌드로써 각 상태 천이에 인접한 요소들로서 판정된다. 조건위의 라인은 조건이 비활성화되어야 한다는 것을 가리킨다. 하나의 상태에서 다음으로의 천이는 BUS2 CLK 신호의 다음 주기의 발생에 의하여 무조건적으로 발생할 것임을 상태 천이에 인접한 "1"은 가리킨다. 상태 천이 옆의 "ELSE"는 상태 천이는 주어진 상태로부터 다른 천이들에 대한 조건들이 만족되지 않으면 발생하는 결여 천이임을 가리킨다. 특별한 천이의 발생에 버스 2 인터페이스 상태 장치(140)가 적절한 동작을 수행한다면, 각 작동은 요소들의 끝에 작동의 이름이 따라오는 사선("/")에 의하여 확인된다.
도 4에 나타난 바와 같이, 상태 다이어그램(500)는 휴식(IDLE) 상태(520), 마스크1(MASK1) 상태(522), 마스크2(MASK2) 상태(524) 및 데이터 전송 진행중(DATA_XFR_IN_PROG) 상태(526)를 구비한다. 상태 다이어그램(500)은 데이터 버퍼(132)로부터 제2 버스(120)로의 다수의 네 개 한벌의 단어들의 전송의 진행을 나타낸다. 휴식 상태(520)는 리셋 상태 천이(530)에 의하여 도시되는 바와 같이, 컴퓨터 시스템이 리셋될 때 시작되는 버스 2 인터페이스 상태 장치의 "정상" 상태이다. 아래에서 언급되는 바와 같이, 버스 2 인터페이스 상태 장치(140)는 데이터 전송이 완료될 때 휴식 상태(520)로 되돌아 간다.
버스 2 인터페이스 상태 장치(140)는 제2 버스(120) 상의 제어 신호들과 새로운 독출 주기가 시작되는 때를 결정하는 다른 조건들을 모니터하는 버스 2 인터페이스 상태 장치(140)의 다른 부분들에 의하여 새로운 독출 주기가 시작되지 않는 한 휴식 상태(520)에 머물러 있다. 새로운 독출 주기가 시작될 때까지 휴식 상태에 머물러 있는 버스 2 인터페이스 상태 장치(140)는 버스 2 인터페이스 상태 장치(140)의 이러한 부분이 버스 2 인터페이스 상태 장치(140)의 다른 부분을 모니터하고 새로운 독출 주기가 시작되는 때를 결정하는 ELSE 상태 천이(532)에 의하여 기술된다. 특히, 버스 2 인터페이스 상태 장치(140)는 내부의 NEW_RD 신호가 비활성화하는 동안에 휴식 상태(520)에 머문다.
버스 2 인터페이스 상태 장치(140)에 의하여 새로운 독출 주기가 시작되고(NEW_RD가 활성화) 버스 2 인터페이스 상태 장치(140)가 제2 버스(120)가 버스 인터페이스(100)에 할당되었음(BUS_RD_TIME로 표시되는 신호가 활성화 됨)을 결정할 때, 그러면 버스 2 인터페이스 상태 장치(140)는 마스크1 상태(522)로의 상태 천이(540)를 일으킨다. 상태 천이 요소의 "/LOAD_QW_CNT" 부분에 의하여 더 나타난 바와 같이, 버스 2 인터페이스 상태 장치는 상태 천이(540)가 일어남으로써 네 개 한벌의 단어 카운트를 내부의 네 개 한벌의 단어 카운터(미도시)에 올릴 것이다. 네 개 한벌의 단어 카운트는 주어진 데이터의 버스트를 제1 버스(110)에서 제2 버스(120)로 전송하기 위해서 발생되어야 하는 전송들의 수를 가리킨다.
마스크1 상태(522)와 마스크2 상태(524)는 버스 2 인터페이스 상태 장치(140)가 선택된 데이터 유효 플래그를 체크하기 전에 선택 데이터 유효 플래그가 버스 2 플래그 멀티플렉서로부터 버스2 동기기를 통하여 전파되는 충분한 시간을 가진다는 것을 보장하는 지연 상태들이다. 그래서, 마스크1 상태(522)로부터 마스크2 상태(524)로의 천이(542)는 (인접한 "1" 요소에 의하여 표시되는 바와 같이) 무조건적으로 발생하는 것으로 나타난다. 유사하게, 마스크2 상태에서 데이터 전송 진행중 상태(526)로의 천이(544)는 무조건적으로 발생한다.
데이터 전송 진행중 상태(526)에서, 버스 2 인터페이스 상태 장치(140)는 DATA_VALID_2 플래그의 상태를 체크하고, 만약 활성화하지 않으면, 버스 2 인터페이스 상태 장치는 ELSE 천이(550)에 의해 도시된 바와 같은 데이터 전송 진행중 상태(526)에 남아 있다. 이와 다르게, 만약 DATA_VALID_2 플래그가 활성화이고 BUS_RD_TIME이 활성화이면, 버스 2 인터페이스 상태 장치(140)는 각각 천이(552)나 천이(554)를 통하여 휴식 상태(520)나 마스크1 상태(522)로 천이하고, 버퍼 장소들(132) 중의 현재 선택된 하나 내의 데이터를 출력할 것이다. 이것은 양 천이들(552와 554)상의 /OUT_DATA에 의하여 도시된다. 데이터를 출력하는 것에 더하여, 버스 2 인터페이스 상태 장치는 CLR_VALID 신호를 플래그 버퍼들(170) 중의 대응하는 하나에 활성화시킨다.
천이(552)나 천이(554)의 선택은 DONE 요소의 조건에 의존한다. DONE 요소는 네 개 한벌의 단어 카운터의 QW_CNT 출력의 조건을 나타낸다. 만약, QW_CNT가 0이면, DONE는 활성화할 것이다. 만약, QW_CNT가 0이 아닌 값을 가지면, DONE는 비활성화할 것이다(즉,
Figure 1019970708819_B1_M0001
가 활성화할 것이다). 만약, DONE가 활성화하면, 버스 2 인터페이스 상태 장치(140)는 천이(552)를 휴식 상태(520)로 되돌릴 것이고 요소 /INC_BUF_NYM에 의하여 나타나는 바와 같이, 지시기를 다음 출력 버퍼로서 다음 버퍼 장소(132)를 가리키는 현재의 출력 버퍼 장소로 증가시킬 것이다. 이와 다르게 만약 DONE이 비활성화(즉,
Figure 1019970708819_B1_M0001
가 활성화)하면, 버스 2 인터페이스 상태 장치(140)는 /DEC_QW_CNT에 의하여 나타난 바와 같이, 마스크1 상태(522)로 천이할 것이고, 지시기를 현재의 출력 버퍼 장소로 증가시킬 것이며, 그리고 네 개 한벌의 단어 카운터를 감소시킬 것이다. 도 1과 관련하여 위에서 언급한 바와 같이, 이전의 선택된 데이터 유효 플래그가 버스2 동기기로부터 전파되는 시간을 제공하고, DATA_VALID_2 신호 라인(216)가 버스 2 인터페이스 상태 장치(140)에 의하여 평가되기 전에 버스 2 인터페이스 상태 장치에 대한 입력에 DATA_VALID_2 신호앞에 새롭게 선택된 데이터 유효 플래그에 의하여 대체되는 마스크1 상태(522)나 마스크2 상태(524)를 통하여 순환하는 것이 필요하다. 이러한 지연은 얼마나 오랫 동안 새롭게 선택된 출력 버퍼 장소의 데이터가 선택된 버퍼 장소(132)에 저장되며 얼마나 오랫동안 대응하는 데이터 유효 플래그가 활성화하는 지에 관계없이 포함될 것이다.
도 4의 상태 다이어그램(500)에 대비하여, 도 5의 상태 다이어그램(510)은 적은 수의 상태를 요구하며 도 1에 도시된 바와 같은 멀티플렉서(200) 뒤에 나타난 바와 같은 단지 단일 버스 2 동기기(210)를 가지기 보다는 도 3에 나타난 바와 같은 플래그 버퍼(170)의 출력들과 버스 2 플래그 멀티플렉서(200)로의 입력들 사이에 다수의 버스 2 동기기들(430, 432, 434 및 436)의 존재 때문에 보다 효율적으로 작동한다. 특히, 도 5의 상태 다이어그램(510)은 휴식 상태(600)와 데이터 전송 진행중 상태(610) 만을 포함한다. 휴식 상태는 리셋(RESET) 천이(620)에 의하여 들어가는데, 위에서 언급한 바와 같다. 도 3의 버스 2 인터페이스 상태 장치(404)는 어떤 조건들이 데이터 전송 진행중 상태(610)로의 천이(624)에 인접한 요소들에 의하여 나타난 바와 같이 일치하지 않는다면, ELSE 천이(622)에 나타난 바와 같이 휴식 상태(600)에 남을 것이다. 특히, 버스 2 인터페이스 상태 장치(404)는 NEW_RD가 시작되고 BUS_RD_TIME 조건이 활성화될 때 까지 휴식 상태(600)에 남을 것이며, 이때에 상태 천이(624)를 통하여 데이터 전송 진행중 상태(610)로의 천이되며 네 개 한벌의 단어 카운터를 /LOAD_QW_CNT 요소들로서 나타나는 전송되는 네 개 한벌의 단어들의 수로서 올릴 것이다.
데이터 전송 진행중 상태(610)에서, 버스 2 인터페이스 상태 장치(404)는 DATA_VALID_2 신호의 조건을 모니터한다. DATA_VALID_2 신호가 활성화하고 BUS_RD_TIME가 활성화를 유지할 때, 버스 2 인터페이스 상태 장치(404)는 DONE 조건에 따라서 두 개의 상태 천이들(630 및 632)중의 하나를 수행할 것이다. 만약 DONE 조건이 비활성화하면, 버스 2 인터페이스 상태 장치(404)는 상태 천이(630)에 의하여 나타난 바와 같이 데이터 전송 진행중 상태(610)에 남을 것이고, /OUT_DATA 요소에 나타난 바와 같은 데이터 버퍼 장소들(132) 중에서 현재 선택된 하나의 내용을 출력할 것이다. 버스 2 인터페이스 상태 장치(404)는 현재의 버퍼 수(/INC_BUF_NUM)를 증가할 것이며 네 개 한벌의 단어 카운터(/DEC_QW_CNT)를 감소할 것이다. 만약 DONE 조건이 활성화하면, 버스 2 인터페이스 상태 장치(404)는 상태 천이(632)를 통해 휴식 상태(600)로 다시 천이될 것이며, 그 때 마지막 네 개 한벌의 단어(/OUT_DATA)를 출력하여 버퍼수(/INC_BUF_NUM)를 증가시킨다. 만약 DATA_VALID_2 신호가 비활성화하거나 BUS_RD_TIME 조건이 충족되지 않는다면(예, 제2 버스(120)는 현재 이용가능하지 않다면), 버스 2 인터페이스 상태 장치(404)는 ELSE 천이(634)에 의하여 나타난 바와 같은 데이터 전송 진행중 상태(610)에 남을 것이다.
상태 다이어그램(510)에 나타난 바와 같이, 도 3과 도 5에 따르는 버스 2 인터페이스 상태 장치(404)는 도 1과 도 4의 버스 2 인터페이스 상태 장치(404)에서 본질적으로 타고나는 시간 지연을 가지지 않는다. 특히, 버스 2 인터페이스 상태 장치(404)가 상태 천이(630)에 버퍼 수를 증가하자 마자 유래되는 데이터 전송 진행중 상태(610)에 머물고 즉시 데이터가 새롭게 선택된 버퍼 장소(132)로부터 출력될 수 있는 지를 결정하는 DATA_VALID_2 신호를 체크한다는 것을 알 수 있을 것이다. 이것은 대응하는 데이터 유효 플래그(FLAG0, FLAG1, FLAG2 또는 FLAG3)가 각각의 버스 2 동기기(430,432,434 또는 436)를 통하여 전파될 것이고 플래그 멀티플렉서(200)의 다음 입력이 선택되자 마자 플래그 멀티플렉서(200)의 입력에 이용가능할 것이기 때문에 발생될 수 있다. 그래서, 제2 버스(120)가 버스 2 인터페이스 상태 장치(404)에 할당되어 유지되고 제1 버스(110)가 데이터 버퍼 장소들(132)을 채운다고 가정하면, 데이터는 각 출력 사이에 두 개의 클락 주기 지연을 포함시키는 것보다는 계속되는 각 클락 주기에 따라 버퍼 장소들(132)로부터 출력될 수 있다.
비록 본 발명의 특별한 실시예와 관련하여 위에서 기술되었지만, 실시예의 기술들은 발명의 예시적이며 제한시키려 하지 않는다는 것은 이해될 것이다. 다양한 변형과 적용들은 발명의 사상과 첨부된 청구항들의 범주로부터 벗어남이 없이 당업자에게 발생할 수 있다.

Claims (6)

  1. 서로에 대하여 비동기적으로 작동하는 제1 및 제2 버스들 사이의 인터페이스 회로이되, 상기 제1 버스는 제1 버스 클락에 동기하여 상기 인터페이스 회로에 데이터를 공급하고 상기 제2 버스는 제2 버스 클락에 동기하여 데이터를 상기 인터페이스 회로로부터 수신하는 상기 인터페이스 회로에 있어서,
    상기 제1 버스 클락에 동기하여 상기 제1 버스로부터의 데이터가 저장되는 제1 및 제2 버퍼 장소들을 적어도 구비하는 입/출력 버퍼;
    상기 제1 및 제2 버퍼 장소들과 각각 관련되는 적어도 제1 및 제2 데이터 유효 표시기들이되, 상기 제1 데이터 유효 표시기는 데이터가 제1 버퍼 장소에 저장될 때 제1 버스 클락에 동기하여 세트되고, 상기 제2 데이터 유효 표시기는 데이터가 제2 버퍼 장소에 저장될 때 제2 버스 클락에 동기하여 세트되는 상기 적어도 제1 및 제2 데이터 유효 표시기들;
    상기 제1 및 제2 데이터 유효 표시기들 중의 하나를 출력 데이터 유효 표시기로서 선택하는 데이터 유효 표시기 선택자;
    상기 제2 버스 클락에 동기적으로 작동하여 상기 입/출력 버퍼로부터 상기 제2 버스로 데이터를 전송하는 버스 상태 장치이되, 상기 제1 및 제2 버퍼 장소들 중의 하나를 상기 제2 버스로 전송되는 데이터의 소스로서 선택하며, 상기 제1 및 제2 데이터 유효 표시기들 중의 하나를 상기 출력 데이터 유효 표시기로서 선택하도록 상기 데이터 유효 표시기 선택자를 제어하며, 상기 제1 버스로부터의 데이터가 상기 제1 및 제2 버퍼 장소들 중의 상기 하나에 저장되는 때를 결정하는 상기 출력 데이터 유효 표시기를 모니터하는 상기 버스 상태 장치;
    상기 제1 데이터 유효 표시기를 수신하여 상기 제2 버스 클락에 동기시켜서 제1 동기된 데이터 유효 표시기를 상기 데이터 유효 표시기 선택자에 입력으로 제공하는 제1 동기화 회로; 및
    상기 제2 데이터 유효 표시기를 수신하여 상기 제2 버스 클락에 동기시켜서 제2 동기된 데이터 유효 표시기를 상기 데이터 유효 표시기 선택자에 입력으로 제공하는 제2 동기화 회로를 구비하는 것을 특징으로 하는 인터페이스 회로.
  2. 서로에 대하여 비동기적으로 작동하는 제1 및 제2 버스들 사이에 데이터를 전송하는 장치에 있어서,
    데이터를 저장하는 복수개의 데이터 저장 장소들을 구비하는 데이터 저장 소자;
    상기 제1 데이터 버스에 연결되며, 상기 제1 데이터 버스로부터 상기 복수개의 데이터 저장 장소들 중의 선택된 하나로 데이터를 전송하는 제1 버스 상태 장치;
    상기 제2 데이터 버스에 연결되며, 상기 복수개의 데이터 저장 장소들 중의 선택된 하나로부터 상기 제2 데이터 버스로 데이터를 전송하는 제2 버스 상태 장치;
    상기 복수개의 데이터 저장 장소들 각각에 대하여 각각의 표시기를 가지는 데이터 제공 버퍼이되, 상기 표시기들 중의 하나는 데이터를 상기 복수개의 데이터 저장 장소들 중의 상기 하나에 전송하는 상기 제1 버스 상태 장치에 응답하여 세트되고 상기 복수개의 저장 장소들 중의 상기 하나로부터 상기 제2 데이터 버스로 데이터를 전송하는 상기 제2 버스 상태 장치에 응답하여 지워지며, 상기 제2 버스 인터페이스 상태 장치는 상기 표시기들 중의 상기 하나가 세트될 때만 상기 복수개의 데이터 저장 장소들 중의 상기 하나로부터 데이터를 전송하는 상기 데이터 제공 버퍼; 및
    상기 데이터 제공 버퍼와 상기 제2 버스 인터페이스 상태 장치 사이에 연결되어 상기 제1 버스 인터페이스 장치가 상기 복수개의 데이터 저장 장소들 중의 상기 하나로 데이터를 전송한 후 소정의 시간이 경과할 때까지 상기 제2 버스 인터페이스 상태 장치가 상기 복수개의 데이터 저장 장소들 중의 상기 하나로부터 데이터를 전송하지 않도록 상기 표시기들을 지연시키는 각각의 지연 회로들의 세트를 구비하는 것을 특징으로 하는 장치.
  3. 제2 항에 있어서, 상기 데이터 저장 소자들은 버퍼들인 것을 특징으로 하는 장치.
  4. 제2 항에 있어서, 상기 제2 데이터 버스는 상기 제2 데이터 버스 상으로 데이터 전송들을 동기시키는 클락 신호들을 가지며 상기 각각의 지연 회로들은 상기 클락 신호에 동기되는 동기기들인 것을 특징으로 하는 장치.
  5. 제2 항에 있어서, 상기 지연 회로들의 세트는 제1 지연 회로들의 세트이고 상기 소정의 시간은 제1 소정의 시간이며, 상기 제2 버스 인터페이스 상태 장치가 상기 복수개의 데이터 저장 장소들 중의 상기 하나로부터 상기 제2 데이터 버스에 데이터를 전송한 후 제2 소정의 시간이 경과할 때까지 상기 제1 버스 인터페이스 상태 장치가 상기 복수개의 데이터 저장 장소들 중의 어느 하나에도 데이터를 전송하지 않도록 상기 제1 버스 인터페이스에 상기 표시기들을 지연시키고 상기 데이터 제공 버퍼와 상기 제1 버스 인터페이스 상태 장치 사이에 연결되는 제2 지연 회로들의 세트를 더 구비하는 것을 특징으로 하는 장치.
  6. 서로에 대하여 비동기적으로 작동하는 제1버스 및 제2버스 사이에 데이터를 전송하는 장치에 있어서,
    데이터를 저장하는 제1 및 제2 데이터 저장 장소들을 구비하는 버퍼;
    상기 제1 데이터 버스와 상기 버퍼에 연결되어 제1 버스 클락 신호에 따라서 상기 제1 데이터 버스로부터 상기 제1 및 제2 데이터 저장 장소들 중의 선택된 하나로의 데이터 전송들을 제어하는 제1 버스 인터페이스 상태 장치;
    상기 제2 데이터 버스와 상기 버퍼에 연결되어 상기 제1 버스 클락 신호와 비동기적으로 작동하는 제2 버스 클락 신호에 따라서 상기 버퍼로부터 상기 제2 데이터 버스로의 데이터 전송들을 제어하는 제2 버스 인터페이스 상태 장치;
    상기 제1 및 제2 버스 인터페이스 상태 장치들 모두에 결합되는 각각의 제1 및 제2 플래그 출력들을 가지는 제1 및 제2 플래그 버퍼들이되, 상기 제1 플래그 버퍼의 상기 출력은 데이터가 상기 제1 데이터 버스로부터 상기 제1 데이터 저장 장소로 전송될 때 상기 제1 버스 클락 신호에 대하여 동기적으로 세트되고 데이터가 상기 제1 데이터 저장 장소로부터 상기 제2 데이터 버스로 전송될 때 상기 제2 버스 클락 신호에 대하여 동기적으로 지워지며, 상기 제2 플래그 버퍼 출력은 데이터가 상기 제1 데이터 버스로부터 상기 제2 데이터 저장 장소로 전송될 때 상기 제1 버스 클락 신호에 대하여 동기적으로 세트되고 데이터가 상기 제2 데이터 저장 장소로부터 상기 제2 데이터 버스로 전송될 때 상기 제2 버스 클락 신호에 대하여 동기적으로 지워지는 상기 제1 및 제2 플래그 버퍼들;
    상기 제1 플래그 버퍼와 상기 제2 버스 인터페이스 상태 장치 사이에 연결되는 제1 동기기와 상기 제2 플래그 버퍼와 상기 제2 버스 인터페이스 상태 장치 사이에 연결되는 제2 동기기이되, 상기 제1 동기기는 상기 제1 플래그 출력이 변화된 후 상기 제1 플래그 출력이 상기 제2 버스 인터페이스 상태 장치에 의하여 수신될 수 있기 전에 상기 제1 플래그 출력이 적어도 소정의 시간 동안 지연되도록 상기 제1 플래그 출력을 상기 제2 버스 클락 신호에 동기시키며, 상기 제2 동기기는 상기 제2 플래그 출력이 변화된 후 상기 제2 플래그 출력이 상기 제2 버스 인터페이스 상태 장치에 의하여 수신될 수 있기 전에 상기 제2 플래그 출력이 적어도 상기 소정의 시간 동안 지연되도록 상기 제2 플래그 출력을 상기 제2 버스 클락 신호에 동기시키는 상기 제1 동기기와 제2 동기기를 구비하는 것을 특징으로 하는 장치.
KR1019970708819A 1995-06-07 1996-06-06 두 개의 상호 비동기적인 버스들 사이의 데이터의 동기 전송에누적하는 시간 지연 감소 KR100258986B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US48350595A 1995-06-07 1995-06-07
US8/483,505 1995-06-07
US51054595A 1995-08-02 1995-08-02
US8/510,545 1995-08-02
PCT/US1996/008575 WO1996041268A1 (en) 1995-06-07 1996-06-06 Reducing cumulative time delay in synchronizing transfer of data between two mutually asynchronous buses

Publications (2)

Publication Number Publication Date
KR19990022339A KR19990022339A (ko) 1999-03-25
KR100258986B1 true KR100258986B1 (ko) 2000-06-15

Family

ID=27047672

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970708819A KR100258986B1 (ko) 1995-06-07 1996-06-06 두 개의 상호 비동기적인 버스들 사이의 데이터의 동기 전송에누적하는 시간 지연 감소

Country Status (11)

Country Link
US (1) US5764966A (ko)
EP (1) EP0834134B1 (ko)
JP (2) JP3873089B2 (ko)
KR (1) KR100258986B1 (ko)
CN (1) CN1093963C (ko)
AU (1) AU6035296A (ko)
DE (1) DE69634358T2 (ko)
IL (1) IL122260A (ko)
RU (1) RU2176814C2 (ko)
TW (1) TW303438B (ko)
WO (2) WO1996041268A1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5898889A (en) * 1996-04-30 1999-04-27 3Com Corporation Qualified burst cache for transfer of data between disparate clock domains
US6119190A (en) 1996-11-06 2000-09-12 Intel Corporation Method to reduce system bus load due to USB bandwidth reclamation
JPH10269775A (ja) 1997-03-27 1998-10-09 Mitsubishi Electric Corp 半導体集積回路および位相同期ループ回路
JP4484359B2 (ja) 1997-10-10 2010-06-16 ラムバス・インコーポレーテッド 最小限の待ち時間とフェイルセーフ再同期化するための方法および装置
US6055597A (en) * 1997-10-30 2000-04-25 Micron Electronics, Inc. Bi-directional synchronizing buffer system
US6076160A (en) * 1997-11-20 2000-06-13 Advanced Micro Devices, Inc. Hardware-based system for enabling data transfers between a CPU and chip set logic of a computer system on both edges of bus clock signal
US6279065B1 (en) * 1998-06-03 2001-08-21 Compaq Computer Corporation Computer system with improved memory access
US6366989B1 (en) * 1998-09-17 2002-04-02 Sun Microsystems, Inc. Programmable memory controller
AU1517800A (en) * 1998-10-30 2000-05-22 Cybex Computer Products Corporation Split computer
US6418494B1 (en) 1998-10-30 2002-07-09 Cybex Computer Products Corporation Split computer architecture to separate user and processor while retaining original user interface
US6560652B1 (en) * 1998-11-20 2003-05-06 Legerity, Inc. Method and apparatus for accessing variable sized blocks of data
DE60017775T2 (de) * 1999-11-05 2006-01-12 Analog Devices Inc., Norwood Architektur und system von einem generischen und seriellen port
EP1150467A1 (en) * 2000-04-28 2001-10-31 STMicroelectronics S.r.l. Encoder architecture for parallel busses
US6782486B1 (en) * 2000-08-11 2004-08-24 Advanced Micro Devices, Inc. Apparatus for stopping and starting a clock in a clock forwarded I/O system depending on the presence of valid data in a receive buffer
JP2003157228A (ja) * 2001-11-20 2003-05-30 Fujitsu Ltd データ転送回路
GB0204144D0 (en) * 2002-02-22 2002-04-10 Koninkl Philips Electronics Nv Transferring data between differently clocked busses
US7321623B2 (en) * 2002-10-01 2008-01-22 Avocent Corporation Video compression system
US20040111563A1 (en) * 2002-12-10 2004-06-10 Edirisooriya Samantha J. Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
CN100370415C (zh) * 2003-04-26 2008-02-20 华为技术有限公司 基于fifo队列的数据包线速处理方法及其装置
CN1323529C (zh) * 2003-04-28 2007-06-27 华为技术有限公司 一种数字信号处理器内部数据传输的方法
US7269783B2 (en) * 2003-04-30 2007-09-11 Lucent Technologies Inc. Method and apparatus for dedicated hardware and software split implementation of rate matching and de-matching
US9560371B2 (en) * 2003-07-30 2017-01-31 Avocent Corporation Video compression system
KR100546403B1 (ko) * 2004-02-19 2006-01-26 삼성전자주식회사 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러
US7457461B2 (en) * 2004-06-25 2008-11-25 Avocent Corporation Video compression noise immunity
JP2006113689A (ja) * 2004-10-12 2006-04-27 Fujitsu Ltd バスブリッジ装置およびデータ転送方法
JP4891253B2 (ja) * 2004-11-25 2012-03-07 テレコム・イタリア・エッセ・ピー・アー 移動体通信機器用の共用icカード及び無線トランシーバモジュール
JP4786262B2 (ja) * 2005-09-06 2011-10-05 ルネサスエレクトロニクス株式会社 インターフェイス回路
TWI310501B (en) * 2005-10-06 2009-06-01 Via Tech Inc Bus controller and data buffer allocation method
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US7783820B2 (en) * 2005-12-30 2010-08-24 Avocent Corporation Packet-switched split computer having disassociated peripheral controller and plural data buses
US7793021B2 (en) 2006-01-05 2010-09-07 Freescale Semiconductor, Inc. Method for synchronizing a transmission of information and a device having synchronizing capabilities
CA2650663A1 (en) * 2006-04-28 2007-11-08 Avocent Corporation Dvc delta commands
CN100405343C (zh) * 2006-06-21 2008-07-23 北京中星微电子有限公司 一种异步数据缓存装置
US8040389B2 (en) 2006-07-25 2011-10-18 Nikon Corporation Image processing method, image processing program and image processing apparatus for detecting object of an image
WO2009069094A1 (en) * 2007-11-30 2009-06-04 Nxp B.V. Method and device for routing data between components
US8363766B2 (en) * 2008-06-06 2013-01-29 Freescale Semiconductor, Inc. Device and method of synchronizing signals
CN101944075B (zh) * 2010-07-21 2012-06-27 北京星网锐捷网络技术有限公司 总线系统、对低速总线设备进行读写操作的方法及装置
CN103440219B (zh) * 2013-08-23 2016-06-08 上海航天测控通信研究所 一种通用总线转换桥ip核
US9910818B2 (en) * 2013-10-02 2018-03-06 Lattice Semiconductor Corporation Serdes interface architecture for multi-processor systems
US20160173134A1 (en) * 2014-12-15 2016-06-16 Intel Corporation Enhanced Data Bus Invert Encoding for OR Chained Buses

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63255760A (ja) * 1987-04-14 1988-10-24 Mitsubishi Electric Corp 制御システム
US5117486A (en) * 1989-04-21 1992-05-26 International Business Machines Corp. Buffer for packetizing block of data with different sizes and rates received from first processor before transferring to second processor
EP0433520B1 (en) * 1989-12-22 1996-02-14 International Business Machines Corporation Elastic configurable buffer for buffering asynchronous data
US5274763A (en) * 1990-12-28 1993-12-28 Apple Computer, Inc. Data path apparatus for IO adapter
US5535341A (en) * 1994-02-24 1996-07-09 Intel Corporation Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation

Also Published As

Publication number Publication date
JP3873089B2 (ja) 2007-01-24
DE69634358D1 (de) 2005-03-24
JP4237769B2 (ja) 2009-03-11
IL122260A (en) 2001-01-11
EP0834134B1 (en) 2005-02-16
JP2006202313A (ja) 2006-08-03
WO1996041268A1 (en) 1996-12-19
AU6035296A (en) 1996-12-30
CN1192282A (zh) 1998-09-02
EP0834134A4 (en) 2002-05-08
RU2176814C2 (ru) 2001-12-10
KR19990022339A (ko) 1999-03-25
DE69634358T2 (de) 2005-12-29
CN1093963C (zh) 2002-11-06
WO1996041267A1 (en) 1996-12-19
US5764966A (en) 1998-06-09
TW303438B (ko) 1997-04-21
IL122260A0 (en) 1998-04-05
EP0834134A1 (en) 1998-04-08
JPH11506851A (ja) 1999-06-15

Similar Documents

Publication Publication Date Title
KR100258986B1 (ko) 두 개의 상호 비동기적인 버스들 사이의 데이터의 동기 전송에누적하는 시간 지연 감소
KR100289443B1 (ko) 소스 동기화 준안정성 프리버스
US6157977A (en) Bus bridge and method for ordering read and write operations in a write posting system
EP1046111B1 (en) Data transferring in source-synchronous and common clock protocols
EP1032880B1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
JPH11167514A (ja) 動作速度が異なるdramに対処できるメモリ制御機能を備えたコンピュータ・システム
US6055597A (en) Bi-directional synchronizing buffer system
JP3645584B2 (ja) データ転送同期装置
US5897667A (en) Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner
US5539739A (en) Asynchronous interface between parallel processor nodes
US5710892A (en) System and method for asynchronous dual bus conversion using double state machines
EP1750203B1 (en) Data bus mechanism for dynamic source synchronized sampling adjust
US5745731A (en) Dual channel FIFO circuit with a single ported SRAM
US5590130A (en) Bus protocol using separate clocks for arbitration and data transfer
EP0829095B1 (en) Method and apparatus for reducing latency time on an interface by overlapping transmitted packets
US6956788B1 (en) Asynchronous data structure for storing data generated by a DSP system
US6377650B1 (en) Counter register monitor and update circuit for dual-clock system
TW381222B (en) Dynamic retry implementation for the PCI bus based on posted transactions on the PCI bus
US20060031619A1 (en) Asynchronous system bus adapter for a computer system having a hierarchical bus structure
EP0988603B1 (en) Method and arrangement for connecting processor to asic
JP3179250B2 (ja) バスドライバレシーバ集積回路
KR100258866B1 (ko) 피씨아이 버스의 브릿지회로
US20030163650A1 (en) System control method, control processing system, and control processing apparatus

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 14

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 16

EXPY Expiration of term