KR100439539B1 - 응용장치와버스구조사이의비동기데이터전달을자동으로관리하기위한비동기데이터파이프 - Google Patents

응용장치와버스구조사이의비동기데이터전달을자동으로관리하기위한비동기데이터파이프 Download PDF

Info

Publication number
KR100439539B1
KR100439539B1 KR10-1998-0706804A KR19980706804A KR100439539B1 KR 100439539 B1 KR100439539 B1 KR 100439539B1 KR 19980706804 A KR19980706804 A KR 19980706804A KR 100439539 B1 KR100439539 B1 KR 100439539B1
Authority
KR
South Korea
Prior art keywords
data
asynchronous
packet
application
transaction
Prior art date
Application number
KR10-1998-0706804A
Other languages
English (en)
Other versions
KR19990087389A (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 KR19990087389A publication Critical patent/KR19990087389A/ko
Application granted granted Critical
Publication of KR100439539B1 publication Critical patent/KR100439539B1/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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40071Packet processing; Packet format

Abstract

비동기 데이터 파이프(ADP)는, 버스 구조를 통해 응용 장치에 대한 비동기 데이터 전달 동작을 종결하기 위해 필요한 트랜잭션을 자동으로 생성한다. ADP는 응용 장치에 의해 프로그램되고 시작되는 레지스터 파일을 포함한다. 레지스터 파일은 버스 속도, 트랜잭션 라벨, 트랜잭션 코드, 목적지 노드 확인자, 목적지 옵셋 어드레스, 각 데이터 패킷의 길이, 패킷 카운터, 패킷 카운터 범프 필드, 제어 필드, 및 상태 필드를 포함한다. 데이터 전달 동작 도중에, ADP는 레지스터 파일 내의 정보를 형판으로 사용하여, 어드레스의 적절한 열을 통해 동작을 종결하기 위해 필요한 트랜잭션을 생성한다. 증가 특징이 불가능으로 되지 않고, 트랜잭션이 고정된 어드레스로 발생되지 않는다면, ADP는 각 데이터 패킷의 길이에 따라, 각 트랜잭션에 대한 목적지 옵셋 어드레스 필드 내의 값을 증가시킨다. 패킷 카운터는 생성되려 남아 있는 트랜잭션의 수를 나타낸다. 패킷 카운터 값은 데이터의 각 패킷이 전달된 후 감소한다. 응용 장치는 패킷 카운터 범프 필드에 기록함으로써 패킷 카운터 값을 증가시킬 수 있다. 멀티플렉서는, ADP로부터의 정보를 버스 구조상에 다중화시키기 위한 다중 ADP를 구비한 시스템 내에 포함된다. 디멀티플렉서는, 버스 구조로부터의 정보를 적절한 ADP로 향하게 하기 위한 다중 ADP를 구비한 시스템 내에 포함된다.

Description

응용 장치와 버스 구조 사이의 비동기 데이터 전달을 자동으로 관리하기 위한 비동기 데이터 파이프{ASYNCHRONOUS DATA PIPE FOR AUTOMATICALLY MANAGING ASYNCHRONOUS DATA TRANSFERS BETWEEN AN APPLICATION AND A BUS STRUCTURE}
IEEE 1394 표준("고성능 직렬 버스를 위한 P1394 표준" 초안 8.01vl, 1995년 6월 16일)은, 비동기 및 등시성 포맷의 데이터 전달을 모두 지원하는 값이 비싸지 않은 고속 직렬 버스 구조를 실현하기 위한 국제 표준이다. 등시성(isochronous) 데이터 전달은, 중요한 순간 사이의 시간 간격이 송신 및 수신 응용 장치 모두에서 동일한 지속 간격을 갖도록, 발생하는 실시간 전달이다. 등시성으로 전달된 데이터의 각 패킷(packet)은 자신의 시간 주기 내에서 전달된다. 데이터를 동시적으로 전달하는 이상적인 응용 장치의 예는 비디오 레코더로부터 텔레비전 세트를 향한 경우이다. 비디오 레코더는 영상과 음향을 기록하고, 데이터를 이산 덩어리 또는 패킷으로 저장한다. 그 후, 비디오 레코더는, 텔레비전 세트에 의한 디스플레이를 위하여, 제한된 시간 기간을 통해 기록된 영상 및 음향을 나타내는 각 패킷을 상기 시간 기간 동안에 전달한다. IEEE 1394 표준의 버스 구조는 응용 장치 사이의 등시성의 데이터 전달을 위한 다중 채널을 제공한다. 6비트의 채널 번호는, 적절한 응용 장치에 의한 수신을 보장하기 위하여, 데이터와 함께 방송된다. 이것은 복수의 응용 장치가 버스 구조를 가로질러 동시에 등시성 데이터를 전달하도록 허용한다. 비동기 전달은, 가능한 신속하게 발생하고, 소스로부터의 데이터의 총량을 목적지에 전달하는, 종래의 데이터 전달이다.
IEEE 1394 표준은 디지털 장치를 상호 접속하기 위한 고속 직렬 버스를 제공하여, 범용 I/O 접속을 제공한다. IEEE 1394 표준은 응용 장치를 위한 디지털 인터페이스를 한정하고, 이에 의해 응용 장치가 디지털 데이터를 버스를 가로질러 전송하기 전에 아날로그 데이터로 변환할 필요성을 제거한다. 상응하게, 수신 응용 장치는 버스로부터 아날로그 데이터가 아닌 디지털 데이터를 수신할 것이고, 따라서 아날로그 데이터를 디지털 데이터로 변환할 필요가 없다. IEEE 1394 표준에 의해 요구되는 케이블은 이러한 장치를 연결하기 위해 사용되는 부피가 큰 다른 케이블과 비교하여 크기에서 매우 가늘다. 버스가 활성인 동안 IEEE 1394 버스로부터 장치가 부가되거나 제거될 수 있다. 장치가 이렇게 부가되거나 제거된다면, 버스는 자동적으로 현존하는 노드 사이에서 데이터를 전송하기 위하여 자신을 재구성한다. 노드는 버스 구조상에서 유일한 어드레스를 갖는 논리적인 실체로 간주된다. 각 노드는 확인 ROM, 제어 레지스터의 표준화된 세트 및 자신의 어드레스 공간을 제공한다.
IEEE 1394 표준은 도 1에 도시된 바와 같이 프로토콜을 한정한다. 이러한 프로토콜은 트랜잭션 층(12), 링크 층(14) 및 물리 층(16)에 연결된 직렬 버스 관리 블록(10)을 포함한다. 물리 층(16)은 장치 또는 응용 장치와 IEEE 1394 케이블 사이의 전기적 및 기계적인 접속을 제공한다. 물리 층(16)은 또한, IEEE 1394 버스에 접속된 모든 장치가 실제 데이터 전송 및 수신과 버스에 억세스하는 것을 보장하기 위한 중재(arbitration)를 제공한다. 링크 층(14)은 비동기 및 등시성 데이터 패킷 운송 모두를 위한 데이터 패킷 전달 서비스를 제공한다. 이것은, 승인 프로토콜을 사용하는 비동기 데이터 운송과, 정시간(just-in-time) 데이터 전달을 위한 실시간 보장된 대역폭 프로토콜을 제공하는 등시성 데이터 운송 모두를 지원한다. 트랜잭션 층(12)은 판독, 기록 및 로크(lock)를 포함하는 비동기 데이터 전달을 종결시키기 위해 필요한 명령을 지원한다. 직렬 버스 관리 블록(10)은 등시성 데이터 전달을 관리하기 위한 등시성 소스 관리자를 포함한다. 직렬 버스 관리 블록(10)은 또한, 중재 타이밍을 최적화하는 형태로 직렬 버스의 전체적인 구성 제어와, 버스 상의 모든 장치를 위한 적절한 전기적인 출력의 보장과, 사이클 마스터의 할당과, 등시성 채널과 대역폭 자원의 할당, 및 에러의 기본적인 통지를 제공한다.
등시성 전달을 초기화하기 위하여, 응용 장치를 구성하고, 데이터의 전달을 위해 사용될 특정 채널을 결정하는 몇 가지 비동기 데이터 전달이 요구될 수 있다. 일단 채널이 결정되면, 송신 응용 장치에서 데이터가 보내지기 전에 이를 저장하고, 수신 응용 장치에서 상기 데이터를 처리하기 전에 이를 저장하기 위하여, 버퍼가 사용된다. 일부 주변 장치의 실현에 있어서, 주변 장치가 많은 수의 비동기 트랜잭션을 사용하여 많은 양의 데이터를 전달하는 것이 바람직하다. 이들 트랜잭션을 신속하고 효율적으로 생성하기 위하여, 범용 CPU 또는 마이크로컨트롤러로 하여금 각 요구 패킷을 구성하도록 요구하는 것은 실용적이지 못하다.
필요한 것은, API와 응용 장치의 프로세서에 의한 통제를 요구함이 없이, 비동기 데이터 전달 동작을 종결하기 위하여 필요한 트랜잭션의 자동 생성을 제공하는 비동기 데이터 파이프(asynchronous data pipe)이다.
본 발명은 응용 장치(an application)와 버스 구조 사이의 데이터 전달 동작을 자동으로 관리하기 위한 분야에 관한 것이다. 특히, 본 발명은 응용 장치와 버스 구조 사이의 비동기 데이터 전달 동작을 종결(complete)하는데 필요한 트랜잭션(transactions)을 자동으로 생성하는 분야에 관한 것이다.
도 1은 IEEE 1394 표준에 의해 한정된 프로토콜을 도시하는 도면.
도 2는 본 발명에 따른 세 개의 비동기 데이터 파이프를 포함하는 링크 칩(a link chip)의 개략적인 구성 블록도.
도 3은 각 비동기 데이터 파이프 내의 레지스터 파일을 도시하는 도면.
비동기 데이터 파이프(ADP : asynchronous data pipe)는 버스 구조 위에서 응용 장치를 위한 비동기 데이터 전달 동작을 종결하기 위해 필요한 트랜잭션을 자동으로 생성한다. ADP는 응용 장치에 의해 프로그래밍된 레지스터 파일을 포함한다. 레지스터 파일(register file)은 응용 장치로 하여금 데이터 전달 동작을 위한 필요 사항과 특성을 프로그램하도록 허용한다. 레지스터 파일은 버스 속도, 트랜잭션 라벨(transaction label), 트랜잭션 코드, 목적지 노드 확인자, 목적지 옵셋 어드레스, 각 데이터 패킷의 길이, 패킷 카운터(packet counter), 패킷 카운터 범프 필드(bump field), 제어 필드 및 상태 필드를 포함한다. 응용 장치에 의해 레지스터 파일이 프로그램되고 시작된 후, 트랜잭션 및 헤더를 생성하기 위한 템플릿(template)으로 레지스터 파일 내의 정보를 사용하여, ADP는 어드레스의 적절한 범위 위에서 데이터 전달 동작을 종결하기 위해 필요한 판독 및 기록 트랜잭션을 자동으로 생성한다. 증분 특성이 디스에이블 되지 않는 다면, 즉 트랜잭션이 단일의 어드레스에서 발생하려 하는 것을 나타낼 때, ADP는 각 데이터 패킷의 길이에 따라 각 트랜잭션을 위한 목적지 옵셋 어드레스 필드 내에서의 값을 자동으로 증가시킨다. 패킷 카운터 값은 남아 있는 생성될 트랜잭션의 수를 나타낸다. 패킷 카운터 값은 데이터의 각 패킷이 전달된 후 감소된다. 패킷 카운터 범프 필드는 응용 장치로 하여금 패킷 카운터 범프 필드에 기록함으로써 패킷 카운터 값을 증가시키도록 허용한다.
다중 ADP는 다중 비동기 데이터 전달 동작을 관리하기 위한 시스템 내에 포함될 수 있다. 이러한 시스템에 있어서, 각 ADP는 자신의 유일한 트랜잭션 라벨 값 또는 값의 열(range of values)을 갖는다. 멀티플렉서는 ADP로부터의 트랜잭션과 데이터 패킷을 버스 구조상에 다중화시키기 위한 각 ADP에 접속된다. 디멀티플렉서는 또한, 트랜잭션 코드와 트랜잭션 라벨 값을 사용하여 버스 구조로부터의 신호와 데이터 패킷을 수신하고 이들을 적절한 ADP에 연결하기 위해 각 ADP에 접속된다.
본 발명에 따른 비동기 데이터 파이프는, 버스 구조를 통해 응용 장치로의 또한 응용 장치로부터의 비동기 데이터 전달을 실현하기 위해 필요한 비동기 트랜잭션을 자동으로 생성한다. 본 명세서에서 사용된 응용 장치는 응용 장치 또는 장치 구동기를 언급할 것이다. 데이터 전달 동작이 종결되는 버스 구조는 IEEE 1394 표준 버스 구조인 것이 바람직하다. 그러나, 당업자에게는 자명한 바와 같이, 본 발명의 비동기 데이터 파이프는 다른 형태의 버스 구조를 통한 데이터 전달을 관리하는데 있어서의 사용을 위하여 적용할 수도 있다. 응용 장치의 방향에서 비동기 데이터 파이프는, 하나 이상의 비동기 트랜잭션을 사용하여 응용 장치에 의해 제공된 로컬 데이터 버퍼 또는 FIFO와 버스 구조를 통한 어드레스의 열(a range of addresses) 사이에서의 임의의 양의 데이터를 전달하는 성능을 포함한다.
비동기 데이터 파이프는, 데이터 전달 동작이 종결되려 할 때 응용 장치에 의해 프로그램되는 레지스터 파일을 포함한다. 레지스터 파일은 응용 장치로 하여금, 트랜잭션이 생성되려 하는 버스 속도, 트랜잭션의 형태를 나타내는 트랜잭션 라벨 및 트랜잭션 코드, 전달이 수행되는 목적지 노드에 대한 확인자, 전달이 발생하는 개시 어드레스를 나타내는 목적지 옵셋 어드레스, 및 각 데이터 패킷의 길이를 포함하는, 데이터 전달 동작에 대한 특정 필요 사항을 프로그램하도록 허용한다. 레지스터 파일은 또한 생성되려는 나머지 패킷 수를 추적하는 패킷 카운터, 응용 장치로 하여금 패킷 카운터를 증가시키도록 허용하는 패킷 카운터 범프 필드, 제어 필드 및 상태 필드를 포함한다. 비동기 데이터 파이프의 증분 특성은, 트랜잭션이 버스 구조를 가로질러 단일의 어드레스에서 발생되려 한다면, 응용 장치에 의해 턴-오프(turn off) 될 수 있다.
레지스터 파일이 응용 장치에 의해 프로그램되고 개시된 후, 비동기 데이터 파이프는, 적절한 열의 어드레스를 통해 데이터 전달 동작을 종결하는데 필요한 판독 또는 기록 트랜잭션을 자동으로 생성한다. 레지스터 파일 내의 정보는, 데이터 전달 동작을 종결하기 위한 필요한 트랜잭션 및 적절한 헤더를 생성하기 위하여, 비동기 데이터 파이프에 의해 템플릿으로 사용된다. 비동기 데이터 파이프는, 증분 특성이 디스에이블되지 않는다면, 전달되는 패킷의 크기에 따라 각 트랜잭션에 대한 목적지 옵셋 어드레스 필드 내의 값을 자동으로 증가시킨다. 비동기 데이터 파이프가 요구되는 트랜잭션을 자동으로 생성하기 때문에, 시작하는 응용 장치에 의한 직접 프로세서 제어 또는 통제는 필요하지 않다. 이것은 응용 장치로 하여금, 본 발명에 따른 비동기 데이터 파이프가 데이터 전달 동작을 종결하는 동안, 다른 기능을 수행하고 다른 임무를 종결하도록 허용한다. 그러나, 레지스터 파일은, 응용 장치로 하여금 비동기 데이터 파이프에 의해 종결되려 남아 있는 트랜잭션의 수를 증가시키도록 허용하는, 패킷 카운터 범프 필드를 포함한다. 이러한 방법에 있어서, 비동기 데이터 파이프는, 필요하다면 데이터 전달 동작을 종결하는데 필요한 트랜잭션의 생성을 제어하는 성능을 구비한다.
시스템은 다중 비동기 데이터 전달 동작을 관리하기 위한 다중 비동기 데이터 파이프를 포함한다. 이러한 시스템에 있어서 멀티플렉서는, 버스 구조와, 비동기 데이터 파이프로부터의 트랜잭션과 데이터 패킷을 상기 버스 구조상에 다중화시키기 위한 각 비동기 데이터 파이프 사이에 접속된다. 디멀티플렉서는 또한, 버스 구조로부터 신호와 데이터 패킷을 수신하고, 이들을 적절한 비동기 데이터 파이프에 전달하기 위한 각 비동기 데이터 파이프에 접속된다. 디멀티플렉서는, 어느 비동기 데이터 파이프가 정보를 수신하려는 지를 결정하기 위하여, 트랜잭션 코드 및트랜잭션 라벨 값을 사용한다. 시스템 내에서, 각 비동기 데이터 파이프는 자신의 유일한 트랜잭션 라벨 값 또는 값의 열을 구비한다.
본 발명에 따라 세 개의 비동기 데이터 파이프(ADP)를 포함하는 링크 회로가 도 2에 도시되었다. 양호한 실시예에 있어서, 링크 회로(10)는 단일의 집적 회로 또는 칩 위에 형성된다. 링크 회로(10)는 응용 장치(12 및 14)와 버스 구조(58) 사이의 링크를 제공한다. 응용 장치(12 및 14)는 모두 시스템 버스(16)에 접속된다. 시스템 버스(16)는 선입선출 데이터 버퍼(FIFOs : first-in first-out data buffers)(32, 34 및 36) 각각에 접속된다. 응용 장치(12 및 14)는 또한 모두 응용 장치 인터페이스 회로(18)에 접속된다. 응용 장치 인터페이스 회로(18)는 한 세트의 제어 레지스터(38), 각각의 비동기 데이터 파이프(20, 22 및 24), 및 링크 코어(a link core)(44)에 접속된다. 각각의 비동기 데이터 파이프(20, 22 및 24)는 레지스터 세트(26, 28 및 30)를 각각 포함한다. 각각의 FIFO(32, 34 및 36)는 비동기 데이터 파이프(20, 22 및 24) 중 적절한 하나에 대응한다. FIFO(32)는 비동기 데이터 파이프(20)에 접속된다. FIFO(34)는 비동기 데이터 파이프(22)에 접속된다. FIFO(36)는 비동기 데이터 파이프(24)에 접속된다. 제어 레지스터(38)는 또한 각각의 비동기 데이터 파이프(20, 22 및 24)에 접속된다. 각각의 비동기 데이터 파이프(20, 22 및 24)는 아웃 바운드(outbound) 데이터 전달 동작을 위하여 멀티플렉서(40)에 접속되고, 인바운드(inbound) 데이터 전달 동작을 위하여 디멀티플렉서(42)에 접속된다. 이러한 개시의 목적을 위하여 아웃 바운드 데이터 전달은 응용 장치로부터 버스 구조로 향한 것이고, 인바운드 데이터 전달은 버스구조로부터 응용 장치로 향한 것이다.
링크 코어(44)는 송신기(46), 수신기(48), 주기 타이머(50), 주기 모니터(52), CRC 에러 검사 회로(54) 및 버스 구조(58)에 물리적으로 인터페이스하기 위한 물리적인 인터페이스 회로(56)를 포함한다. 송신기(46)는 멀티플렉서(40), 주기 타이머(50), CRC 에러 검사 회로(54) 및 물리적인 인터페이스 회로(56)에 접속된다. 수신기(48)는 디멀티플렉서(42), 주기 모니터(52), CRC 에러 검사 회로(54) 및 물리적인 인터페이스 회로(56)에 접속된다. 주기 타이머(50)는 주기 모니터(52)에 접속된다. 물리적인 인터페이스 회로(56)는 버스 구조(58)에 접속된다.
도 2에 도시된 시스템은 세 개의 비동기 데이터 파이프(20, 22 및 24)를 포함한다. 시스템의 특정 요구 사항에 따라, 시스템이 임의의 수의 비동기 데이터 파이프(20, 22 및 24)로 실현될 수 있음은 당업자에게는 자명할 것이다. 각 비동기 데이터 파이프는 응용 장치를 위한 데이터 전달 동작을 자동으로 처리하기 위한 성능을 제공한다. 따라서, 다음의 설명으로부터 자명한 바와 같이, 시스템 내의 부가적인 비동기 데이터 파이프를 갖는 것은, 비동기 데이터 전달 동작을 동시에 종결하는 성능을 제공함으로써 시스템의 성능을 증가시킨다.
각 비동기 데이터 파이프는, 버스 구조(58)를 가로지르는 비동기 트랜잭션을 통해 전달되려는 응용 장치에 또한 상기 응용 장치로부터의 데이터에 대한 양방향 데이터 경로이다. 임의의 비동기 데이터 파이프 동작에 선행하여, 일부 외부 실체가 비동기 데이터 파이프 내의 레지스터 파일을 프로그램하여야만 한다. 이러한 외부 실체는 응용 장치 자체, 또는 시스템 내부의 일부 다른 지능 또는 상태 기기(intelligence or state machine)가 될 수 있다. 본 발명의 양호한 실시예에 있어서, 비동기 데이터 파이프의 레지스터 파일은 응용 장치에 의해 프로그램된다. 각 비동기 데이터 파이프는 아웃 바운드 데이터에 대한 필요한 헤더를 생성하는 능력을 포함하고, 템플릿으로서 레지스터 파일을 사용하여 인바운드 데이터로부터 헤더를 검사하고 분리한다.
비동기 데이터 파이프 레지스터 파일은, 이하에서 자세하게 설명되는 바와 같이, 버스 구조 개시 어드레스에 관련되는 데이터, 트랜잭션 형태 및 트랜잭션 크기를 포함한다. 양호한 실시예에 있어서, 트랜잭션 형태는, 쿼드렛 판독(quadlet read), 쿼드렛 기록(quadlet write), 블록 판독, 또는 블록 기록 중 임의의 하나이다. 트랜잭션 크기는 쿼드렛 트랜잭션의 경우 4 바이트이거나, 또는 블록 트랜잭션의 경우 블록 요구 크기이다.
비동기 데이터 파이프가 인에이블(enable)될 때, 레지스터 파일 내의 프로그램된 파라미터에 따른 비동기 트랜잭션을 사용하여 응용 데이터를 전달한다. 응용장치로부터 버스 구조에 접속된 다른 노드로의 기록 트랜잭션의 경우에 있어서, 비동기 데이터 파이프는 FIFO 인터페이스에서 유효한 응용 데이터를 취하고, 적절한 헤더 정보를 링크 코어(44)에 의해 요구된 포맷으로 데이터에 부가하며, 상기 데이터를 멀티플렉서(40)를 통해 링크 코어(44)에 전달한다. 버스 구조에 접속된 다른 노드로부터 응용 장치로의 판독 트랜잭션의 경우에 있어서, 비동기 데이터 파이프는 적절한 판독 요구 패킷을 발행하고, 데이터가 수신될 때, 대응하는 판독 응답패킷 내의 데이터를 FIFO 인터페이스를 통해 응용 장치에 전달한다. 판독 및 기록 트랜잭션 모두에 있어서, 비동기 데이터 파이프는, 링크 코어(44)에 의해 요구되는, 버스 구조의 특정 패킷 포맷으로 데이터를 구성한다. 비동기 데이터 파이프는 또한, 응용 장치의 요구를 종결하기 위해 필요한, 어드레스의 증가하는 열에 대한 트랜잭션의 어드레스 계산을 처리한다. 즉, 후속하는 트랜잭션은 버스 구조의 어드레스 공간 내에서 어드레스의 증가하는 열에서 어드레스 지정된다.
각 비동기 데이터 파이프에 대한 FIFO 인터페이스는, 비동기 데이터 파이프가 제어하는 데이터 경로 전용의 FIFO(32, 34 또는 36)에 직접 접속된다. 각 FIFO(32, 34 또는 36)는 단일의 비동기 데이터 파이프 전용이다. 각 비동기 데이터 파이프를 위한 링크 인터페이스는 멀티플렉서(40)와 디멀티플렉서(42)를 통해 링크 코어(44)에 접속된다. 각 비동기 데이터 파이프로부터 링크 코어(44)에 제공된 데이터는 링크 코어 기능에 의해 요구되는 포맷이다. 각 비동기 데이터 파이프는, 링크 코어 규격에 의해 한정된 포맷으로 되려는, 링크 코어(44)로부터 들어오는 데이터를 수신하도록 설계된다. 하나 이상의 비동기 데이터 파이프가 시스템 내에 포함된다면, 각 비동기 데이터 파이프는 멀티플렉서(40)와 디멀티플렉서(42)를 통해 링크 코어(44)에 접속된다.
링크 코어(44)로부터 비동기 데이터 파이프(20, 22 및 24)로 향하는 데이터는 디멀티플렉서(42)를 통과한다. 디멀티플렉서(42)는 데이터를 적절한 비동기 데이터 파이프에 전달하기 위하여 트랜잭션 코드와 트랜잭션 라벨을 사용한다. 디멀티플렉서(42)는, 패킷 헤더의 트랜잭션 코드 필드와 패킷 헤더의 트랜잭션 라벨 필드 내의 값을 사용하여, 응답 패킷을 버스 구조(58)로부터 적절한 비동기 데이터 파이프로 향하게 한다. 이후 적절한 비동기 데이터 파이프는 응답 패킷을 대응하는 요구 패킷에 부합시킨다.
디멀티플렉서(42)는, 패킷을 링크 코어(44)로부터 적절한 비동기 데이터 파이프에 전달할 때, 어떠한 정보도 변경하지 않는다. 링크 코어에 의해 생성된 모든 정보는 목적지 비동기 데이터 파이프에 보내진다. 비동기 데이터 파이프는, 링크 코어(44)로부터의 데이터가 응용 장치에 전달되기 전에, 이 데이터의 필요한 모든 처리를 수행할 것인데, 상기 처리는 버스 구조에 대한 프로토콜에 의해 요구되는 헤더 정보를 분리하는 단계를 포함할 수 있다. 아웃 바운드 데이터에 대해, 비동기 데이터 파이프는, 링크 코어(44)에 의해 요구되는 적절한 형태가 되도록, 응용 장치로부터의 데이터를 준비한다. 각 비동기 데이터 파이프는 적절한 헤더 정보를 생성할 것이고, 응용 장치로부터의 데이터를 멀티플렉서(40)를 통해 링크 코어(44)에 보내기 전에, 상기 헤더 정보를 상기 데이터에 삽입시킨다.
모든 비동기 데이터 파이프(20, 22 및 24)에 대해, 링크 인터페이스는 데이터를, 링크 코어(44) 기능의 요구 사항에 호환되는 포맷으로 생성하고 소비한다. 기록 동작 도중에, 비동기 데이터 파이프(20, 22 및 24)는, 링크 코어(44)에 의해 요구되는 바와 같이, 요구되는 버스 구조 특정 헤더 정보를 생성하고, 이 정보를 응용 장치로부터의 데이터에 삽입한다. 판독 동작 도중에, 비동기 데이터 파이프(20, 22 및 24)는, 링크 코어(44)로부터 비동기 데이터 파이프(20, 22 및 24) 중 하나로 이동하는 데이터를 위해 링크 코어(44)에 의해 제공된 포맷으로 상기 데이터를 수용한다. 즉, 링크 코어(44)로부터 적절한 비동기 데이터 파이프(20, 22 및 24)로 데이터를 변환하기 위하여, 데이터의 어떠한 처리도 필요하지 않다.
오직 하나의 비동기 데이터 파이프가 한 시스템 내에 포함될 때, 비동기 데이터 파이프는 링크 코어(44)에 직접 연결될 수 있다. 한 시스템 내에 다중 비동기 데이터 파이프가 존재할 때, 시스템은 비동기 데이터 파이프와 링크 코어(44) 사이에서 적절한 멀티플렉서(40)와 디멀티플렉서(42)를 포함하여야만 한다. 멀티플렉서(40)는, 다중 비동기 데이터 파이프(20, 22 및 24)의 링크 인터페이스에서 데이터를 취하여, 상기 데이터를 링크 코어(44)를 향해 다중화시키고, 이후 한 패킷씩 순차적으로 버스 구조(58) 상에 다중화시킨다. 이러한 정보는 전달 응용 장치가 설정한 우선 순위로 버스 구조로 전달된다. 디멀티플렉서(42)는 패킷을 적절한 비동기 데이터 파이프(20, 22 또는 24)로 향하도록 하기 위하여, 버스 구조(58)로부터 수신된 각 패킷의 트랜잭션 코드 및 트랜잭션 라벨 필드 내의 값과, 비동기 응답 패킷 헤더의 트랜잭션 라벨 내의 값을 사용한다.
본 발명의 비동기 데이터 파이프는 대응하는 FIFO와 링크 코어(44) 사이의 양방향 데이터 경로이다. 대응하는 FIFO로부터 링크 코어(44)에 데이터를 전달할때, 비동기 데이터 파이프는 적절한 헤더 정보를 형성하고, 최종 헤더와 응용 데이터를 링크 코어(44)에 보내기 전에 이를 데이터에 부가한다. 링크 블록은 버스 구조(58)를 가로질러 기록 동작을 생성하고 완결하기 위하여, 비동기 데이터 파이프에 의해 생성된 정보를 사용한다. 링크 코어(44)로부터 데이터를 FIFO에 보낼 때, 비동기 데이터 파이프는 판독 트랜잭션을 위한 적절한 헤더 정보를 생성한다. 비동기 데이터 파이프는 이러한 정보를 링크 코어(44)에 보내고, 상기 링크 코어(44)는 이후 버스 구조(58)를 가로질러 판독 요구를 전송한다. 이후의 시간에 응답 노드는 판독 응답 패킷을 복귀시킨다. 링크 코어(44)는, 적절한 비동기 데이터 파이프를 결정하기 위하여 트랜잭션 코드 및 트랜잭션 라벨 필드 내의 값을 사용하여, 이러한 응답 패킷을 검출하고, 이를 디멀티플렉서(42)에 전송하는데, 이후 상기 디멀티플렉서(42)는 상기 데이터를 판독 요구를 생성한 비동기 데이터 파이프로 향하게 한다. 이후 비동기 데이터 파이프는 패킷으로부터 헤더 정보를 분리하고 데이터를 대응하는 FIFO로 보낸다. 이후 응용 장치는 FIFO로부터의 데이터를 처리한다. 버스 구조(58)를 가로질러 보내질 판독 또는 기록 요구를 생성하는 것에 관계없이, 비동기 데이터 파이프는 응용 장치로부터 또는 응용 장치에 모든 데이터를 운송할 때까지 적절한 요구를 생성하는 것을 지속한다.
다중 비동기 데이터 파이프를 포함하는 시스템은 데이터 전달의 다중 스레드(thread)를 동시에 유지할 수 있다. 후속적인 명령을 판독하거나 또는 상태 정보를 개시 응용 장치에 보고하면서 미디어 데이터를 전달할 수 있는 디스크 드라이브와 같은 삽입된 응용 장치에서 이러한 점은 특히 유용하다. 디멀티플렉서(42)는 데이터를 적절히 각 비동기 데이터 파이프에 향하게 한다. 본 발명의 양호한 실시예에 있어서, 각 비동기 데이터 파이프는 고유한 트랜잭션 라벨 또는 트랜잭션 라벨의 열을 구비한다. 디멀티플렉서(42)는 트랜잭션 라벨 및 트랜잭션 코드 필드 내의 데이터에 따라 적절한 비동기 데이터 파이프를 결정한다.
각 비동기 데이터 파이프는, 이하에서 자세하게 설명되는 바와 같이, 전용레지스터 파일을 구비한다. 레지스터 파일은, 응용 장치가 시작한 데이터 전달 동작과 같은 외부 지능(intelligence)에 의해 프로그램된다. 일단 레지스터 파일이 프로그램되면, 비동기 데이터 파이프는 어드레스의 증가하는 열 또는 버스 구조(58)를 가로지르는 고정된 어드레스에 대해 판독 및 기록 트랜잭션을 수행할 수 있다. 이러한 트랜잭션은 블록 또는 쿼드렛 크기가 될 수 있다. 데이터 전달 동작을 프로그래밍할 때, 응용 장치는 전달을 위한 전체 블록 카운트를 제공하거나, 한 번에 하나의 카운트씩 블록 카운트를 "범프"("bump")하거나, 또는 이들의 조합을 제공할 것이다. 전달에 대한 전체 블록 카운트가 프로그램되면, 비동기 데이터 파이프는, 응용 장치가 다른 동작을 수행하고 다른 임무를 종결하는 동안, 동작을 종결하기 위해 필요한 트랜잭션을 생성한다. 각 비동기 데이터 파이프는 버스 구조에 특정한 어드레스 포인터 콘텍스트(context)를 유지하고, 블록 카운터가 0이 아닌 값을 가질 때마다 판독 또는 기록 트랜잭션을 수행한다.
각 비동기 데이터 파이프는, 시작한 응용 장치에 의해 프로그램되고, 버스 구조(58)를 가로질러 데이터 전달 동작을 종결하기 위해 필요한 적절한 트랜잭션을 생성하기 위해 사용되는, 전용 레지스터 파일을 필요로 한다. 각 비동기 데이터 파이프를 위해 필요하고, 본 발명의 양호한 실시예에 포함된 레지스터 파일은 도 3에 도시되었다. 레지스터 파일(80)은 16진법으로 0 내지 1F로 번호가 매겨진 32바이트의 데이터를 포함한다. 도 3에 있어서, 레지스터 파일(80)은 각각이 4바이트를 포함하는 8개 수평 행의 테이블 포맷으로 도시되었다. 옵셋 열(82)은 레지스터 파일(80)의 시작 어드레스로부터 각 행의 시작 바이트의 옵셋을 나타내기 위해 도3에 포함되었다. 판독/기록 열(84)은 또한 각 행 내의 필드가 판독 및 기록될 수 있는지(RW) 또는 기록만 될 수 있는 지(W)를 나타내기 위하여 포함되었다.
속도 필드(sp)는 레지스터 파일(80)의 바이트 1 내의 2비트 필드이다. 속도 필드(sp)는 판독 및 기록될 수 있다. 속도 필드(sp)는 모든 요구 패킷이 생성될 버스 속도를 한정한다. 이 필드에 대한 기록 동작은 속도 필드(sp)내의 값을 갱신한다. 속도 필드(sp)에 대한 판독 동작은 이 필드에 기록된 최종 값을 복귀시킨다. 속도 필드 내의 값은, 모든 요구 패킷이 버스 구조(58)를 가로질러 생성될 속도를 나타내는 2비트 값이다. 이하의 표 1은 속도 필드(sp)내의 값에 대한 속도의 상관관계를 한정한다.
[표 1]
그러므로, 표 1에 도시된 바와 같이, 속도 필드(sp)내의 00의 값은 모든 요구 패킷이 100 Mbps로 생성되는 버스 속도를 한정하고, 01의 값은 요구 패킷을 200 Mbps로 생성하는 버스 속도에 대응하고, 10의 값은 요구 패킷을 400 Mbps로 생성하는 버스 속도에 대응한다.
트랜잭션 라벨 필드(t1)는 레지스터 파일(80)의 바이트 2 내의 6비트 필드이다. 트랜잭션 라벨 필드(t1)는 판독 및 기록될 수 있다. 트랜잭션 라벨 필드(t1)는대응하는 비동기 데이터 파이프에 의해 생성된 모든 요구 패킷을 위해 사용할 트랜잭션 라벨의 값을 유지한다. 다른 실시예에 있어서, 단일의 비동기 데이터 파이프는 한 열의 트랜잭션 라벨을 관리한다. 이 필드에 대한 기록 동작은 트랜잭션 라벨 필드(t1) 내의 값을 갱신한다. 트랜잭션 라벨 필드(t1)에 대한 판독 동작은 이 필드에 기록된 최종 값을 복귀시킨다. 한 시스템 내에 하나 이상의 비동기 데이터 파이프가 존재한다면, 각 비동기 데이터 파이프는, 디멀티플렉서(42)가 응답 패킷을 적절하게 시작하는 비동기 데이터 파이프에 향하게 할 수 있도록, 트랜잭션 라벨 필드(t1) 내에서 고유한 값을 가져야만 한다.
양호한 실시예에 있어서, 레지스터 파일(80)의 바이트 2의 두 개의 최하위 비트는 둘 모두 논리적으로 낮은 전압 값으로 영구적으로 프로그램된다.
트랜잭션 코드 필드(tCode)는 레지스터 파일(80)의 바이트 3 내의 4비트 필드이다. 트랜잭션 코드 필드(tCode)는 판독 및 기록될 수 있다. 트랜잭션 코드 필드(tCode)는 대응하는 비동기 데이터 파이프에 의해 생성된 모든 요구 패킷을 위해 사용할 트랜잭션 코드를 유지한다. 이 필드에 대한 기록 동작은 트랜잭션 코드 필드(tCode) 내의 값을 갱신한다. 트랜잭션 코드 필드(tCode)에 대한 판독 동작은 이 필드에 기록된 최종 값을 복귀시킨다. 트랜잭션 코드 필드(tCode) 내의 값은 수행될 동작 형태를 나타내는 4비트 값이다. 트랜잭션 코드 필드(tCode) 내의 값과 수행될 동작의 형태 사이의 상관 관계는 이하의 표 2에 도시되었다.
[표 2]
트랜잭션 코드 필드(tCode)가 값 0000을 포함할 때, 수행될 데이터 전달 동작은 쿼드렛 기록 동작이다. 트랜잭션 코드 필드(tCode)가 값 0001을 포함할 때, 수행될 데이터 전달 동작은 블록 기록 동작이다. 트랜잭션 코드 필드(tCode)가 값 0100을 포함할 때, 수행될 데이터 전달 동작은 쿼드렛 판독 동작이다. 트랜잭션 코드 필드(tCode)가 값 0101을 포함할 때, 수행될 데이터 전달 동작은 블록 판독 동작이다. 트랜잭션 코드 필드(tCode)가 값 1001을 포함할 때, 수행될 데이터 전달 동작은 로크 동작이다.
양호한 실시예에 있어서, 레지스터 파일(80)의 바이트 3의 4 개의 최하위 비트는, 버스 구조를 위한 패킷 헤더 내의 예비 필드를 제공하기 위하여, 모두 논리적으로 낮은 전압 값으로 영구적으로 프로그램된다.
목적지 확인자 필드(destination_ID)는 레지스터 파일(80)의 바이트 4 및 5내의 16비트 필드이다. 목적지 확인자 필드(destination_ID)는 판독 및 기록될 수 있다. 목적지 확인자 필드(destination_ID)는 16비트의 목적지 노드 확인자(ID)를 유지하는데, 상기 목적지 노드 확인자는 데이터 잔달 동작에 대해 대응하는 비동기 데이터 파이프에 의해 생성된 모든 요구 패킷과 함께 사용된다. 이 필드에 대한 기록 동작은 목적지 확인자 필드(destination_ID) 내의 값을 갱신한다. 목적지 확인자 필드(destination_ID)에 대한 판독 동작은 이 필드에 기록된 최종 값을 복귀시킨다. 목적지 확인자 필드(destination_ID) 내의 값은, 버스 구조(58)를 가로질러 데이터 전달 동작이 발생하는 노드를 나타낸다. 그러므로 버스 구조(58) 상의 각 노드는 고유한 목적지 확인자를 구비한다.
상위 목적지 옵셋 필드(destination_offset Hi)는 레지스터 파일(80)의 바이트 6 및 7 내의 16비트 필드이다. 상위 목적지 옵셋 필드(destination_offset Hi)는 판독 및 기록될 수 있다. 상위 목적지 옵셋 필드(destination_offset Hi)는 생성된 다음의 요구 패킷에 대해 사용할 목적지 옵셋 어드레스의 상위 16비트를 유지한다. 이 필드에 대한 기록 동작은 상위 목적지 옵셋 필드(destination_offset Hi) 내의 값을 갱신한다. 상위 목적지 옵셋 필드(destination_offset Hi)에 대한 판독 동작은 목적지 옵셋 어드레스의 상위 16비트의 현재 값을 복귀시킨다.
하위 목적지 옵셋 필드(destination_offset Lo)는 레지스터 파일(80)의 바이트 8 내지 B 내의 32비트 필드이다. 하위 목적지 옵셋 필드(destination_offset Lo)는 판독 및 기록될 수 있다. 하위 목적지 옵셋 필드(destination_offset Lo)는 생성된 다음의 요구 패킷에 대해 사용할 목적지 옵셋 어드레스의 하위 32비트를 유지한다. 이 필드에 대한 기록 동작은 하위 목적지 옵셋 필드(destination_offset Lo) 내의 값을 갱신한다. 하위 목적지 옵셋 필드(destination_offset Lo)에 대한 판독 동작은 목적지 옵셋 어드레스의 하위 32비트의 현재 값을 복귀시킨다. 상위 목적지 옵셋 필드(destination_offset Hi)와 하위 목적지 옵셋필드(destination_offset Lo)는 공동으로 현재의 트랜잭션이 생성되는 48비트의 목적지 옵셋 어드레스를 형성한다. 이하에서 논의될, 제어 필드 내의 증가하지 않는 플래그(flag)가 논리적으로 낮은 전압 레벨이라면, 비동기 데이터 파이프는, 상위 목적지 옵셋 필드(destination_offset Hi)와 하위 목적지 옵셋 필드(destination_offset Lo)를 포함하는 전체 48 비트 목적지 옵셋 필드를, 각 판독 또는 기록 트랜잭션이 생성된 후 데이터 길이 필드 내의 값만큼 증가시킨다.
데이터 길이 필드(data_length)는 레지스터 파일(80)의 바이트 C 및 D 내의 16비트 필드이다. 데이터 길이 필드(data_length)는 판독 및 기록될 수 있다. 데이터 길이 필드(data_length)는 대응하는 비동기 데이터 파이프에 의해 생성된 모든 요구 패킷의 크기를 바이트로 유지한다. 이 필드에 대한 기록 동작은 데이터 길이 필드(data_length) 내의 값을 갱신한다. 데이터 길이 필드(data_length)에 대한 판독 동작은 이 필드에 기록된 최종 값을 복귀시킨다. 데이터 길이 필드(data_length) 내의 값은, 이하의 표 3에 한정된 바와 같이, 레지스터 파일(80)의 다른 필드 내의 값에 기초하여, 일부 제한을 받는다.
[표 3]
확장된 트랜잭션 코드 필드(extended_tCode)는 레지스터 파일(80)의 바이트 E 및 F 내의 16비트 필드이다. 확장된 트랜잭션 코드 필드(extended_tCode)는 판독 및 기록될 수 있다. 이 필드에 대한 기록 동작은 확장된 트랜잭션 코드 필드(extended_tCode) 내의 값을 갱신한다. 확장된 트랜잭션 코드 필드(extended_tCode)에 대한 판독 동작은 이 필드에 기록된 최종 값을 복귀시킨다. 확장된 트랜잭션 코드 필드(extended_tCode)는 로크 트랜잭션을 제외한 모든 트랜잭션에 대해 0의 값을 갖는다. 트랜잭션 코드 필드(tCode) 내의 값이 로크 요구임을 나타내는 1001의 값으로 설정된다면, 확장된 트랜잭션 코드 필드(extended_tCode)는 로크 트랜잭션에 대한 확장된 트랜잭션 코드 값을 유지한다.
패킷 카운터 필드는 시스템의 구성에 따라, 레지스터 파일(80)의 바이트 10-13 내의 8 내지 32 비트 필드이다. 패킷 카운터 필드는 판독 및 기록될 수 있다.패킷 카운터 필드는 데이터 전달 동작을 종결하기 위하여 생성되려고 남아 있는 요구 패킷의 수를 유지한다. 이 필드에 대한 기록 동작은 패킷 카운터 필드 내의 값을 변화시킨다. 패킷 카운터 필드에 대한 판독 동작은 생성되려고 남아 있는 요구 패킷의 현재 패킷 카운트 값을 복귀시킨다. 패킷 카운터 필드 내의 값은 각 트랜잭션이 생성된 후 감소된다. 생성된 패킷 수의 완전한 제어를 위하여, 패킷 카운터 필드는 그 값이 0일 때에만 기록되어야 한다.
패킷 카운터 범프 필드는 레지스터 파일(80)의 바이트 14-17 내의 기록만을 위한 바이트이다. 패킷 카운터 범프 필드가 기록될 때, 대응하는 비동기 데이터 파이프는 패킷 카운터 레지스터 내의 값을 증가시킨다. 패킷 카운터 범프 필드가 판독된다면, 복귀된 값은 예측될 수 없다. 이것은 시작하는 응용 장치로 하여금 현재의 데이터 전달 동작에 대해 생성된 부가적인 트랜잭션을 구비하도록 허용한다. 본 발명의 양호한 실시예에 있어서, 패킷 카운터 범프 필드에 대한 기록은, 패킷 카운터 필드가 0이 아닌 값을 포함할 때 패킷 카운터 필드 내의 값을 증가시키는 유일한 방법이다.
제어 필드는 레지스터 파일(80)의 바이트 18-1B 내의 32비트 필드이다. 제어 필드는 판독 및 기록될 수 있다. 제어 필드 내에서, 비트 0-29는 예비용이고, 비트 30은 증가하지 않는 제어 비트(non_incr)이며, 비트 31은 동작 제어 비트(go)이다. 동작 제어 비트(go)는, 비동기 데이터 파이프를 인에이블(enable)시키기 위하여 논리적으로 높은 전압 값으로 설정된다. 동작 제어 비트(go)를 논리적으로 낮은 전압 값으로 소거시키는 것은(clearing) 곧바로, 또는 비동기 데이터 파이프가 현재 트랜잭션의 중간에 있다면 다음 트랜잭션의 경계에서, 또는 비동기 데이터 파이프를 디스에이블(disable)시킨다. 따라서, 비동기 데이터 파이프는 동작 제어 비트(go)가 논리적으로 높은 전압 레벨로 설정될 때만 동작된다. 증가하지 않는 제어 비트(non_incr)는, 비동기 데이터 파이프로 하여금 고정되거나 또는 증가하지 않는 어드레스에 대한 모든 요구 패킷을 강제로 생성하게 하기 위하여, 논리적으로 높은 전압 레벨로 설정된다. 증가하지 않는 제어 비트(non_incr)가 논리적으로 낮은 전압 레벨과 동일할 때, 대응하는 비동기 데이터 파이프는 목적지 옵셋 값을 각 트랜잭션이 종결된 후 데이터 길이 필드(data_length) 내의 값만큼 증가시킨다.
상태 필드는 레지스터 파일(80)의 바이트 1C-1F 내의 32비트 필드이다. 상태 필드는 판독 및 기록될 수 있다. 상태 필드는 대응하는 비동기 데이터 파이프에 의해 생성된 요구 패킷으로부터 야기되는 응답 코드 및 최종 승인 코드를 유지한다. 상태 필드는 에러 필드, 응답 코드 필드, 승인 입력 필드 및 승인 출력 필드를 포함한다.
에러 필드는, 비동기 데이터 파이프로 하여금 동작을 정지하도록 야기하는 에러를 나타내는 비트를 포함하는 4비트 필드이다. 에러 필드는 동작 제어 비트(go)가 논리적으로 높은 전압 레벨로 설정될 때 소거된다. 에러 필드는, 동작 제어 비트(go)가 비동기 데이터 파이프에 의해 논리적으로 낮은 전압 레벨로 소거될 때, 유효하다. 표 4는 에러 필드 내의 가능한 값들과 이들의 의미 사이의 관계를 도시한다.
[표 4]
에러 필드 내의 0000의 값은 에러가 존재하지 않음을 나타낸다. 에러 필드 내의 0001의 값은, 이전에 송신된 요구 패킷에 대해 불량 승인 코드가 수신되었기 때문에 에러가 발생하였음을 나타낸다. 에러 필드 내의 0010의 값은, 응답 패킷에 대해 불량 승인 코드가 송신되었기 때문에 에러가 발생하였음을 나타낸다. 에러 필드 내의 0100의 값은, 에러가 분열 트랜잭션 타임아웃(split transaction time-out) 발생에 의해 야기되었음을 나타낸다. 에러 필드내의 1000의 값은 버스 리세트가 발생하였음을 나타낸다.
응답 코드 필드(rcode)는 수신된 최종 응답 코드 값을 유지하는 4비트 필드이다. 응답 코드 필드 내의 값은, 최종 트랜잭션이 통합된 트랜잭션으로 종결된 기록 트랜잭션이라면, 1111과 동일하게 된다.
승인 입력 필드는, 비동기 데이터 파이프에 의해 생성된 최종 요구 패킷에 따라 원격 노드로부터 수신된 최종 승인 신호를 유지하는 4비트 필드이다.
승인 출력 필드는, 대응하는 비동기 데이터 파이프에 의해 생성된 요구 패킷에 대응하는 응답 패킷에 따라 비동기 데이터 파이프에 의해 생성된 최종 승인 신호를 유지하는 4비트 필드이다.
상태 필드에 대한 기록 동작은 필드 내의 값을 변화시킨다. 이 필드의 판독 동작은 비동기 데이터 파이프와 현재 데이터 전달 동작의 현재 상태를 복귀시킨다. 요구 패킷 또는 대응하는 응답 패킷 중 하나가 에러를 초래하면, 비동기 데이터 파이프는 먼저 임의의 추가 요구 패킷의 생성을 정지한다. 그 후 비동기 데이터 파이프는, 응답 코드 필드(rcode), 승인 입력 필드(ack-in) 및 승인 출력 필드(ack-out)에 대한 값을 상태 필드 내로 래치(latch)한다. 이들 값을 상태 필드 내로 래치한 후, 비동기 데이터 파이프는, 현재의 데이터 전달 동작 도중에 에러 조건이 발생하였음을 응용 장치에 알리기 위하여, 응용 장치 인터페이스를 통해 응용 장치에 인터럽트 신호를 강하게 제기한다(assert).
판독 동작
판독 동작을 처리하고, 버스 구조에 접속된 다른 노드로부터 데이터를 얻고, 데이터를 응용 장치에 전달할 때, 비동기 데이터 파이프는 템플릿으로서 레지스터 파일(80) 내의 정보를 사용하여, 적절한 판독 요구 패킷을 생성한다. 데이터가 그후 목적지 노드로부터 수신될 때, 디멀티플렉서(42)는, 트랜잭션 코드와 트랜잭션 라벨 필드 내의 값을 사용하여, 데이터를 적절한 비동기 데이터 파이프로 향하게 한다. 그 후 비동기 데이터 파이프는 데이터 패킷으로부터 헤더 정보를 분리시키고, 데이터 패킷을 FIFO에 로드시키는데, 응용 장치는 상기 FIFO로부터 수신된 데이터를 처리할 수 있다.
활성일 때, 또한 버스 구조(58)로부터 데이터를 FIFO 인터페이스에 전달할때, 각 비동기 데이터 파이프는 이하의 표 5에서 한정된 바와 같이, 데이터 수신 상태 머신(machine)으로서 동작한다.
[표 5]
FIFO 인터페이스는, 버스 구조 인터페이스에 동기가 맞추어진 클록 신호로, 비동기 데이터 파이프로부터 대응하는 FIFO 내로 향하는 데이터를 클록킹한다. FIFO는 항상, 비동기 데이터 파이프로부터 유효할 때, 데이터의 워드를 수신할 상태이다. FIFO 내의 여유 공간이 없을 때 요구 신호가 제기된다면, FIFO 오버런(overrun)이 발생한다. 이것은 대응하는 비동기 데이터 파이프에 의해 검출되는 에러 상태를 생성한다. FIFO 오버런 상태가 발생할 때, FIFO가 소거되고 부가적인 데이터를 수신할 준비가 될 때까지 나머지 트랜잭션은 정지된다. 이러한 경우에 있어서, 상태 레지스터의 승인 출력 필드는 에러를 반영한다.
버스 구조로부터 데이터를 판독하기 위하여, 시작하는 응용 장치는 적절한 비동기 데이터 파이프를 위해 적절한 정보를 레지스터 파일 내에 프로그램한다.100 Mbps, 200 Mbps 또는 400 Mbps 중 하나인, 사용될 버스 속도에 대한 적절한 값이 속도 필드(sp) 내에 프로그램된다. 사용될 버스 속도는 물리적인 인터페이스(56)의 성능 내에 포함되어야만 하고, 버스 구조(58)에 의해 지원되어야만 한다. 종결될 특정 트랜잭션을 위한 적절한 값은 트랜잭션 코드 필드(tCode)에 프로그램된다. 모든 요구 패킷에 대한, 버스 구조를 가로지르는, 목적지 노드의 확인자에 대응하는 적절한 값은 목적지 확인자 필드(destination_ID)에 프로그램된다.
시작하는 48 비트의 목적지 옵셋 값은 상위 및 하위 목적지 옵셋 필드(destination_offset Hi 및 destination_offset Lo)에 프로그램된다. 제어 필드 내에서 증가하지 않는 비트는 논리적으로 낮은 전압 레벨이라면, 목적지 옵셋 필드 내의 값은 각 요구 트랜잭션이 생성된 후 증가된다. 생성될 각 요구 패킷에 대한 바이트 수는 데이터 길이 필드(data_length)에 프로그램된다. 트랜잭션 코드 필드(tCode) 내의 값이 이 트랜잭션이 쿼드렛 판독 트랜잭션임을 나타내는 0100과 같다면, 데이터 길이 필드(data_length) 내의 값은 4와 같다. 트랜잭션 코드 필드(tCode) 내의 값이 이 트랜잭션이 블록 판독 트랜잭션임을 나타내는 0101과 같다면, 데이터 길이 필드(data_length) 내의 값은, 상술한 표 3에서 도시된 바와 같이, 프로그램된 버스 속도를 위해 허용될 수 있는 한 열의 수중의 적절한 값으로 프로그램된다. 종결될 동작이 판독 동작이고, 로크 트랜잭션이 아니기 때문에, 확장된 트랜잭션 코드 필드(extended_tCode) 내의 값은 0이 되도록 프로그램된다.
이 데이터 전달 동작을 종결하기 위해 생성되고 보내질 패킷 수는 패킷 카운터 필드 내에 프로그램된다. 응용 장치가 적절한 트랜잭션을 생성하기 위하여 패킷 카운터 범프 필드에 한 번에 하나씩 기록 하려한다면, 패킷 카운터 필드 내의 값은 초기에 0으로 프로그램될 수 있다. 제어 필드 내의 증가하지 않는 비트는, 모든 요구 패킷이 동일한 목적지 옵셋 어드레스에 보내지려 한다면, 논리적으로 높은 전압 레벨이도록 프로그램된다. 제어 필드 내의 증가하지 않는 비트는, 요구 패킷이 증가하는 열의 어드레스에 보내지려 한다면, 논리적으로 낮은 전압 레벨이도록 프로그램된다. 제어 필드 내의 동작 제어 비트(go)는, 비동기 데이터 파이프로 하여금 데이터 전달 동작을 종결하기 위해 필요한 적절한 트랜잭션의 생성을 시작하는 것을 가능케 하기 위하여, 논리적으로 높은 전압 레벨이도록 프로그램된다.
제어 필드 내에서 동작 제어 비트(go)가 논리적으로 높은 전압 레벨로 설정될 때, 비동기 데이터 파이프는 활성 상태로 들어간다. 활성 상태에 있는 동안, 비동기 데이터 파이프는 표 6에서 한정된 바와 같은 판독 상태 머신에 따라 판독 요구 패킷을 생성한다.
[표 6]
어느 때라도, 시작하는 응용 장치는 패킷 카운터 범프 필드에 기록할 수 있고, 이에 의해 패킷 카운터 필드 내의 값을 1 만큼 증가시킨다. 비동기 데이터 파이프의 판독 상태 머신은, 표 6에서 한정된 바와 같이, 활성 비동기 데이터 파이프에 접속된 FIFO 내에서 한 패킷의 자유공간보다 더 큰 공간이 존재할 때마다, 판독 요구 패킷을 생성한다. 비동기 데이터 파이프의 판독 상태 머신은 또한, 비동기 데이터 파이프에 대응하는 FIFO가 완전히 텅 빌 때마다, 판독 요구 패킷을 형성한다. 삽입된 응용 장치가, 데이터가 대응하는 FIFO로부터 충분히 빠르게 또한 충분히 짧은 잠복(latency)을 가지고 클록킹되는(clocked) 것을 보장한다면, 비동기 데이터 파이프에 대응하는 FIFO의 크기는 레지스터 파일(80) 내에서 데이터 길이 필드(data_length) 내의 값에 의해 지정된 바이트 수보다 더 적을 수 있다.
비동기 데이터 파이프에 의해 생성된 각 판독 요구 패킷에 대해, 비동기 데이터 파이프는 목적지 노드가 대응하는 판독 요구 패킷을 생성한다고 예상한다. 디멀티플렉서는, 다중 비동기 데이터 파이프가 시스템 내에 포함될 때 패킷을 적절한 비동기 데이터 파이프로 향하게 하기 위하여, 판독 응답 패킷 내의 트랜잭션 코드(tCode)와 트랜잭션 라벨(t1)을 사용한다. 그 후 수신하는 비동기 데이터 파이프는 헤더를 분리하고, 대응하는 FIFO 인터페이스에서 유효한 데이터 필드를 생성한다.
각 판독 요구 패킷이 생성된 후, 제어 필드 내의 증가하지 않는 비트가 논리적으로 높은 전압 레벨로 설정되지 않는다면, 비동기 데이터 파이프는, 다음 판독 요구 패킷의 생성에 대비하여 목적지 옵셋 어드레스 값을 데이터 길이 필드(data_length) 내의 값만큼 증가시킨다. 상기 표 6에서 한정된 판독 상태 머신에는 도시되지 않았지만, 대응하는 각 판독 응답 패킷에 대해 비동기 데이터 파이프는, 생성하는 각 기록 요구 패킷에 대한 승인 입력 필드와 응답 코드필드(rcode)를 시험한다. 승인 입력 필드 또는 응답 코드 필드(rcode) 중 어느 한 쪽이 에러를 나타내거나, 또는 비동기 데이터 파이프가 일부 에러에 기인하여 판독 응답 패킷에 대한 불량 승인 코드를 강제로 복귀시키게 된다면, 비동기 데이터 파이프는 곧바로 정지하고, 승인 코드와 응답 코드(rcode)를 레지스터 파일(80) 내의 비동기 데이터 파이프 상태 필드에 저장한다. 분열 트랜잭션에 대해, 비동기 데이터 파이프는 응답의 시간을 잰다. 요구 패킷과 대응하는 응답 패킷 사이에 100 밀리 초 이상이 경과되면, 비동기 데이터 파이프는 정지하고, 레지스터 파일(80)의 상태 필드 내의 한정된 상태 정보를 디스플레이한다.
기록 동작
기록 동작을 실행하고, 데이터를 시작하는 응용 장치로부터 버스 구조에 접속된 다른 노드에 보낼 때, 비동기 데이터 파이프는 템플릿으로서 레지스터 파일(80) 내의 정보를 사용하여 적절한 헤더를 생성한다. 그 후, 헤더는 적절한 데이터 패킷에 부가되고, 헤더와 데이터 패킷 모두 링크 코어(44)에 의해 버스 구조(58) 상에 놓여진다. 증가하는 기능이 디스에이블되지 않는다면, 비동기 데이터 파이프는 목적지 옵셋 필드 내의 값을 증가시키고, 데이터의 다음 패킷에 대한 헤더를 생성한다. 각 트랜잭션이 생성된 후, 패킷 카운터 값은 감소한다. 이러한 처리는 패킷 카운터 필드 내의 값이 0과 같아질 때까지 반복된다.
활성일 때, 또한 데이터를 FIFO로부터 버스 구조(58)에 전달할 때, 각 비동기 데이터 파이프는 다음의 표 7에서 한정된 바와 같이 데이터 전달 상태 머신으로서 동작한다.
[표 7]
FIFO 인터페이스는 버스 구조 인터페이스에 동기가 맞추어진 클록으로 FIFO로부터 대응하는 비동기 데이터 파이프로의 데이터를 클록킹한다. 비동기 데이터 파이프가 요구할 때, FIFO는 항상 유효한 데이터의 한 워드를 갖는다. FIFO 내의 데이터가 없을 때 요구 신호(Req)가 제기된다면, FIFO 언더런(underrun)이 발생한다. 이것은 에러를 생성하는데, 상기 에러는 대응하는 비동기 데이터 파이프에 의해 검출되어 처리된다. 응용 장치는, 버스 구조(58)를 가로질러 전달시키기 위하여 적절한 데이터가 FIFO에 저장되도록 보장한다. FIFO 언더런이 발생할 때, 나머지 트랜잭션은 FIFO가 보낼 부가적인 데이터를 구비할 때까지 정지된다.
데이터를 버스 구조(58)에 기록하기 위하여, 응용 장치는 적절한 비동기 데이터 파이프에 대하여 적절한 정보를 레지스터 파일 내에 프로그램한다. 100 Mbps, 200 Mbps 또는 400 Mbps 중 하나인, 사용될 버스 속도에 대한 적절한 값이 속도 필드(sp) 내에 프로그램된다. 사용될 버스 속도는 물리적인 인터페이스(56)의 성능 내에 포함되고, 버스 구조(58)에 의해 지원되도록 선택된다. 종결될 특정 트랜잭션을 위한 적절한 값은 트랜잭션 코드 필드(tCode)에 프로그램된다. 요구가 쿼드렛 기록 요구라면, 0000의 값이 트랜잭션 코드 필드(tCode)에 프로그램된다. 요구가 블록 기록 요구라면, 0001의 값이 트랜잭션 코드 필드(tCode)에 프로그램된다. 모든 요구 패킷에 대한, 버스 구조를 가로지르는, 목적지 노드의 확인자에 대응하는 적절한 값은 목적지 확인자 필드(destination_ID)에 프로그램된다.
시작하는 48 비트의 목적지 옵셋 값은 상위 및 하위 목적지 옵셋 필드(destination_offset Hi 및 destination_offset Lo)에 프로그램된다. 제어 레지스터 내에서 증가하지 않는 비트는 논리적으로 낮은 전압 레벨이라면, 레지스터 파일(80)의 목적지 옵셋 필드 내의 값은 각 요구 트랜잭션이 종결된 후 증가된다. 생성될 각 요구 패킷에 대한 바이트 수는 데이터 길이 필드(data_length)에 프로그램된다. 트랜잭션 코드 필드(tCode) 내의 값이 이 트랜잭션이 쿼드렛 기록 트랜잭션임을 나타내는 0000과 같다면, 데이터 길이 필드(data_length) 내의 값은 4와 같게 된다. 트랜잭션 코드 필드(tCode) 내의 값이 이 트랜잭션이 블록 기록 트랜잭션임을 나타내는 0001과 같다면, 데이터 길이 필드(data_length) 내의 값은, 상술한 표 3에서 도시된 바와 같이, 프로그램된 버스 속도를 위해 허용될 수 있는 한 열의 수중의 적절한 값으로 프로그램된다. 종결될 동작이 기록 동작이기 때문에, 확장된 트랜잭션 코드 필드(extended_tCode) 내의 값은 0이 되도록 프로그램된다.
이 트랜잭션을 종결하기 위해 생성되고 보내질 패킷 수는 패킷 카운터 필드내에 프로그램된다. 응용 장치가 적절한 트랜잭션을 생성하기 위하여 패킷 카운터 범프 필드에 한 번에 하나씩 기록 하려한다면, 패킷 카운터 필드 내의 값은 초기에 0으로 프로그램될 수 있다. 제어 필드 내의 증가하지 않는 비트는, 모든 요구 패킷이 동일한 목적지 옵셋 어드레스에 보내지려 한다면, 논리적으로 높은 전압 레벨이도록 프로그램된다. 제어 필드 내의 증가하지 않는 비트는, 요구 패킷이 증가하는 열의 어드레스에 보내지려 한다면, 논리적으로 낮은 전압 레벨이도록 프로그램된다. 제어 필드 내의 동작 제어 비트(go)는, 비동기 데이터 파이프로 하여금 데이터 전달 동작을 종결하기 위해 필요한 적절한 트랜잭션의 생성을 시작하는 것을 가능케 하기 위하여, 논리적으로 높은 전압 레벨이도록 프로그램된다.
레지스터 파일(80)의 제어 필드 내에서 동작 제어 비트(go)가 논리적으로 높은 전압 레벨로 설정될 때, 비동기 데이터 파이프는 활성 상태로 들어간다. 활성 상태에 있는 동안, 비동기 데이터 파이프는 다음의 표 8에서 한정된 바와 같은 기록 상태 머신에 따라 요구 패킷을 생성한다.
[표 8]
어느 때라도, 시작하는 응용 장치는 패킷 카운터 범프 필드에 기록하여, 패킷 카운터 필드 내의 값을 1 만큼 증가시킬 수 있다. 비동기 데이터 파이프의 기록 상태 머신은, 표 8에서 한정된 바와 같이, 활성 비동기 데이터 파이프에 접속된 FIFO 내에서 한 패킷의 데이터보다 더 큰 데이터가 존재할 때마다, 기록 요구 패킷을 생성한다. 비동기 데이터 파이프의 기록 상태 머신은 또한, 비동기 데이터 파이프에 대응하는 FIFO가 완전히 채워질 때마다, 기록 요구 패킷을 형성한다. 삽입된 응용 장치가 대응하는 FIFO에 충분히 빠르게 또한 충분히 짧은 잠복(latency)을 가지고 데이터가 클로킹되는 것을 보장한다면, 비동기 데이터 파이프에 대응하는 FIFO의 크기는 레지스터 파일(80) 내에서 데이터 길이 필드(data_length) 내의 값에 의해 지정된 바이트 수보다 더 적을 수 있다.
각 기록 요구 패킷이 생성된 후, 제어 필드 내의 증가하지 않는 비트가 논리적으로 높은 전압 레벨로 설정되지 않는다면, 비동기 데이터 파이프는, 다음 판독 요구 패킷의 생성에 대비하여 목적지 옵셋 어드레스 값을 데이터 길이 필드(data_length) 내의 값만큼 증가시킨다. 상기 표 8에서 한정된 기록 상태 머신에는 도시되지 않았지만, 목적지 노드가 기록 응답 패킷을 생성한다면, 비동기 데이터 파이프는, 생성하는 각 기록 요구 패킷에 대한 승인 입력 필드와 응답 코드 필드(rcode)를 검사한다. 승인 입력 필드 또는 응답 코드 필드(rcode) 중 어느 한 쪽이 에러를 나타내거나, 또는 비동기 데이터 파이프가 일부 에러에 기인하여 기록 응답 패킷에 대한 불량 승인 코드를 강제로 복귀시키게 된다면, 비동기 데이터 파이프는 곧바로 정지하고, 승인 코드와 응답 코드(rcode)를 레지스터 파일(80) 내의 비동기 데이터 파이프 상태 필드에 저장한다. 분열 트랜잭션에 대해, 비동기 데이터 파이프는 응답의 시간을 잰다. 요구 패킷과 대응하는 응답 패킷 사이에 100 밀리 초 이상이 경과되면, 비동기 데이터 파이프는 정지하고, 레지스터 파일(80)의 상태 필드 내의 한정된 상태 정보를 디스플레이한다.
본 발명의 양호한 실시예에 있어서, 버스 구조(58)는 IEEE 1394 표준 버스 구조이다. 각 비동기 데이터 파이프는 따라서 IEEE 1394 표준에 의해 요구되는 포맷으로 트랜잭션, 헤더, 요구 및 응답을 생성한다. 당업자에게는 본 발명의 비동기 데이터 파이프가 다른 형태의 버스 구조 및 시스템에 사용될 수 있음은 자명할 것이다. 이러한 시스템에 있어서, 비동기 데이터 파이프는 특정 버스 구조에 대해 적절하게 트랜잭션, 헤더, 요구 및 응답을 생성하도록 적용된다.
본 발명은, 본 발명의 구성 및 동작 원리의 이해를 쉽게 하기 위하여 상세한 사항을 포함하는 특정 실시예에 관하여 설명되었다. 특정 실시예와 이들의 상세 사항에 대한 여기에서 이러한 인용은 첨부된 청구범위의 범주를 제한하려한 것은 아니다. 당업자에게는, 설명을 위해 선택된 실시예에서 본 발명의 사상과 범주를 벗어남이 없이 변형이 이루어질 수 있음은 자명할 것이다.
상술한 바와 같이, 본 발명은 응용 장치(an application)와 버스 구조 사이의 데이터 전달 동작을 자동으로 관리하기 위한 분야, 특히 응용 장치와 버스 구조 사이의 비동기 데이터 전달 동작을 종결(complete)하는데 필요한 트랜잭션(transactions)을 자동으로 생성하는 분야에 이용된다.

Claims (53)

  1. 버스 구조(58)를 통해 응용 장치(application)(12)에 또는 이로부터의 비동기 데이터 전달 동작을 자동으로 제어하기 위하여, 응용 장치(12)와 버스 구조(58) 사이를 접속하도록 구성된 비동기 데이터 파이프(asynchronous data pipe)(20)에 있어서,
    a. 데이터 전달 동작에 대한 파라미터를 수신하기 위한 수단과,
    b. 상기 버스 구조(58)에 접속된 노드와 상기 응용 장치(12) 사이의 데이터 전달 동작을, 상기 응용 장치에 의한 직접적인 프로세서 제어 또는 간섭 없이, 종결하기 위해 필요한 트랜잭션(transaction)을 자동으로 생성하기 위한 수단을 포함하는 비동기 데이터 파이프.
  2. 제 1항에 있어서, 상기 응용 장치(12)가 데이터 전달 동작에 대한 파라미터를 저장하는 레지스터 파일(26)을 더 포함하는 비동기 데이터 파이프.
  3. 제 2항에 있어서, 상기 레지스터 파일(26)은, 상기 응용 장치(12)에 의한 직접적인 프로세서 제어 또는 통제 없이 상기 데이터 전달 동작을 종결하기 위해 필요한 트랜잭션과 헤더를 생성하기 위한 템플릿(template)으로서 사용되는 비동기 데이터 파이프.
  4. 제 3항에 있어서, 상기 파라미터는 상기 레지스터 파일(26) 내에서, 상기 버스 구조(58)의 어드레스 공간 내의 목적지 어드레스, 전달될 데이터의 길이, 전달될 각 데이터 패킷의 길이 및 상기 전달 방향을 포함하는 비동기 데이터 파이프.
  5. 제 2항에 있어서, 상기 응용 장치(12)에 데이터를 보내고 상기 응용 장치(12)로부터 데이터를 수신하기 위해 상기 응용 장치(12)에 접속된 데이터 버퍼(32)를 더 포함하는 비동기 데이터 파이프.
  6. 제 5항에 있어서, 상기 버스 구조(58)는 IEEE 1394 표준 버스 구조인 비동기 데이터 파이프.
  7. 제 4항에 있어서, 상기 데이터 전달 동작을 종결하기 위해 필요한 상기 트랜잭션은, 각 트랜잭션이 생성될 때 상기 목적지 어드레스를 각 데이터 패킷의 길이만큼 증가시킴으로써, 어드레스의 증가하는 열(range)로 생성되는 비동기 데이터 파이프.
  8. 제 4항에 있어서, 상기 데이터 전달 동작을 종결하기 위해 필요한 상기 트랜잭션은 고정된 어드레스로 생성되는 비동기 데이터 파이프.
  9. 제 4항에 있어서, 상기 레지스터 파일(26)은 전달되려고 남아 있는 패킷 수를 나타내는 패킷 카운터 값을 더 포함하는 비동기 데이터 파이프.
  10. 제 9항에 있어서, 상기 응용 장치(12)는 상기 레지스터 파일(26) 내의 소정의 필드에 기록함으로써 상기 패킷 카운터 값을 자동으로 증가시키는 비동기 데이터 파이프.
  11. 응용 장치(12)와, 버스 구조(58)에 접속된 노드 사이의 기록 데이터 전달 동작을 관리하는 방법에 있어서,
    a. 상기 응용 장치(12)로부터 기록 데이터 전달 동작에 대한 파라미터를 수신하는 단계와,
    b. 상기 응용 장치로부터 데이터의 한 패킷을 얻는 단계와,
    c. 상기 응용 장치에 의한 직접적인 프로세서 제어 및 통제 없이 생성되는, 데이터 전달 동작을 위한 헤더를 생성하는 단계와,
    d. 데이터의 상기 패킷에 상기 헤더를 부가하는 단계로서, 상기 헤더는 데이터의 패킷에 대한 목적지 어드레스를 포함하는, 헤더 부가 단계와,
    e. 상기 헤더를 포함하는 데이터의 상기 패킷을 상기 버스 구조(58)상에 전달하는 단계를 포함하는 기록 데이터 전달 동작 관리 방법.
  12. 제 11항에 있어서, 상기 응용 장치(12)로부터 수신된 상기 파라미터는 레지스터 파일(26)에 저장되는 기록 데이터 전달 동작 관리 방법.
  13. 제 12항에 있어서, 상기 파라미터는 목적지 어드레스, 전달될 데이터의 길이, 전달될 각 데이터 패킷의 길이 및 전달될 패킷 수를 나타내는 패킷 카운터 값을 포함하는 기록 데이터 전달 동작 관리 방법.
  14. 제 13항에 있어서, 상기 레지스터 파일(26)은, 상기 응용 장치(12)에 의한 직접적인 프로세서 제어 또는 통제 없이 데이터의 패킷을 상기 버스 구조(58)상에 기록하기 위해 필요한 상기 헤더와 트랜잭션을 생성하기 위한 템플릿으로서 사용되는 기록 데이터 전달 동작 관리 방법.
  15. 제 14항에 있어서,
    f. 상기 목적지 어드레스를 데이터 패킷의 상기 길이만큼 증가시키는 단계와,
    g. 상기 패킷 카운터 값을 감소시키는 단계와,
    h. 상기 패킷 카운터 값이 0이 될 때까지 전달될 데이터의 각 패킷에 대해 단계 b 내지 단계 g를 반복하는 단계를 더 포함하는 기록 데이터 전달 동작 관리 방법.
  16. 제 15항에 있어서, 데이터의 상기 패킷은 상기 응용 장치(12)에 의해 로드된 데이터 메모리 버퍼(32)로부터 얻어지는 기록 데이터 전달 동작 관리 방법.
  17. 버스 구조(58)에 접속된 노드와 응용 장치(12) 사이의 판독 데이터 전달 동작을 관리하는 방법에 있어서,
    a. 상기 응용 장치(12)로부터 판독 데이터 전달 동작에 대한 파라미터를 수신하는 단계와,
    b. 데이터의 패킷이 상기 노드로부터 상기 버스 구조(58)상에 놓이도록 요구하기 위해 필요한 트랜잭션을 생성하는 단계로서, 상기 트랜잭션은 상기 응용 장치(12)에 의한 직접적인 프로세서 제어 또는 통제 없이 생성되는, 트랜잭션 생성 단계와,
    c. 상기 버스 구조(58)로부터 데이터의 상기 패킷을 얻는 단계와,
    d. 데이터의 상기 패킷으로부터 헤더 정보를 분리시키는 단계와,
    e. 상기 응용 장치(12)에 헤더 정보 없이, 데이터의 상기 패킷을 제공하는 단계를 포함하는 판독 데이터 전달 동작의 관리 방법.
  18. 제 17항에 있어서, 상기 응용 장치(12)로부터 수신된 파라미터는 레지스터 파일(26) 내에 저장되는 판독 데이터 전달 동작의 관리 방법.
  19. 제 18항에 있어서, 상기 파라미터는, 상기 데이터가 송신되는 노드 내의 시작 어드레스를 나타내는 목적지 어드레스, 전달될 데이터의 길이, 전달될 각 데이터 패킷의 길이 및 전달될 패킷 수를 나타내는 패킷 카운터 값을 포함하는 판독 데이터 전달 동작의 관리 방법.
  20. 제 19항에 있어서, 상기 레지스터 파일(26)은, 직접적인 프로세서 제어 또는 통제 없이 상기 노드로부터 데이터의 패킷을 판독하기 위해 필요한 트랜잭션과 헤더를 생성하기 위한 템플릿으로서 사용되는 판독 데이터 전달 동작의 관리 방법.
  21. 제 20항에 있어서,
    f. 상기 목적지 어드레스를 데이터 패킷의 상기 길이만큼 증가시키는 단계와,
    g. 상기 패킷 카운터 값을 감소시키는 단계와,
    h. 상기 패킷 카운터 값이 0이 될 때까지, 전달될 데이터의 각 패킷에 대해 단계 b 내지 단계 g를 반복하는 단계를 더 포함하는 판독 데이터 전달 동작의 관리방법.
  22. 제 21항에 있어서, 데이터의 상기 패킷은 데이터 메모리 버퍼(32)를 통해 상기 응용 장치(12)에 제공되는 판독 데이터 전달 동작의 관리 방법.
  23. 하나 이상의 응용 장치(12 및 14)와 버스 구조(58) 사이의 비동기 데이터 전달 동작을 관리하기 위한 장치에 있어서,
    a. 상기 하나 이상의 응용 장치(12 및 14)와 상기 버스 구조(58) 사이를 접속하도록 구성된 다수의 비동기 데이터 파이프(20, 22, 및 24)로서, 이들 각각은
    i. 데이터 전달 동작에 대한 파라미터를 수신하기 위해 상기 응용 장치에 접속하도록 구성된 파라미터를 수신하는 수단과,
    ii. 직접적인 프로세서 제어 없이, 상기 데이터 전달 동작을 종결하기 위하여 필요한 트랜잭션을 자동으로 생성하는 수단을 포함하는, 다수의 비동기 데이터 파이프(20, 22, 및 24)와,
    b. 데이터를 상기 버스 구조(58)상에 위치시키고, 상기 버스 구조(58)로부터 데이터를 얻기 위하여 상기 버스 구조(58)에 접속되도록 구성된 물리적인 버스 인터페이스(44)와,
    c. 상기 각 비동기 데이터 파이프(20, 22, 및 24)로부터 상기 버스 구조(58)에 데이터 패킷을 전달하기 위해, 각 비동기 데이터 파이프(20, 22, 및 24)와 상기 물리적인 버스 인터페이스(44) 사이에 접속된 멀티플렉싱 회로(40)와,
    d. 상기 버스 구조(58)로부터 얻어진 데이터 패킷을 상기 비동기 데이터 파이프(20, 22, 및 24) 중 적절한 하나로 향하게 하기 위하여, 각 비동기 데이터 파이프(20, 22, 및 24)와 상기 물리적인 버스 인터페이스(44) 사이에 접속된 디멀티플렉싱 회로(42)를 포함하는 비동기 데이터 전달 동작 관리 장치.
  24. 제 23항에 있어서, 각 비동기 데이터 파이프(20, 22, 및 24)는, 데이터와 데이터 전달 동작에 대한 파라미터가 저장되는 레지스터 파일(26, 28 및 30)을 더 포함하는 비동기 데이터 전달 동작 관리 장치.
  25. 제 24항에 있어서, 상기 데이터와 파라미터는 상기 응용 장치(12 및 14) 중 하나에 의해 상기 레지스터 파일(26) 내에 저장되는 비동기 데이터 전달 동작 관리 장치.
  26. 제 24항에 있어서, 상기 레지스터 파일(26)은, 데이터 전달이 발생하는 노드를 확인하는, 상기 버스 구조(58)의 어드레스 공간 내의 목적지 어드레스, 전달될 데이터의 길이, 각 데이터 패킷의 길이 및 데이터 전달의 방향을 포함하는 비동기 데이터 전달 동작 관리 장치.
  27. 제 26항에 있어서, 상기 레지스터 파일(26)은, 데이터 전달 동작이 향하는 상기 비동기 데이터 파이프(20)를 확인하는 트랜잭션 라벨 값을 더 포함하는데, 상기 비동기 데이터 파이프(20, 22, 및 24)의 각각은 고유한 트랜잭션 라벨 값을 갖는 비동기 데이터 전달 동작 관리 장치.
  28. 제 26항에 있어서, 상기 레지스터 파일(26)은, 데이터 전달 동작이 향하는 상기 비동기 데이터 파이프(20)를 확인하는 트랜잭션 라벨 값의 한 열을 더 포함하는데, 상기 비동기 데이터 파이프(20, 22, 및 24)의 각각은 트랜잭션 라벨 값의 고유한 열을 갖는 비동기 데이터 전달 동작 관리 장치.
  29. 제 27항에 있어서, 상기 레지스터 파일(26)은, 직접적인 프로세서 제어 또는 통제 없이 상기 데이터 전달 동작을 종결하기 위해 필요한 상기 트랜잭션과 헤더를 생성하기 위한 템플릿으로서 사용되는 비동기 데이터 전달 동작 관리 장치.
  30. 제 29항에 있어서, 상기 디멀티플렉싱 회로(42)는, 상기 데이터 패킷 내의 상기 트랜잭션 라벨 값에 의해 데이터 패킷이 향해야만 하는 적절한 비동기 데이터 파이프(20)를 결정하는 비동기 데이터 전달 동작 관리 장치.
  31. 제 30항에 있어서, 상기 디멀티플렉싱 회로(42)는, 상기 데이터 패킷 내의 상기 트랜잭션 라벨 값에 의해 기록 응답 패킷이 향해야만 하는 적절한 비동기 데이터 파이프(20)를 결정하는 비동기 데이터 전달 동작 관리 장치.
  32. 제 30항에 있어서, 상기 데이터 전달 동작을 종결하기 위해 필요한 상기 트랜잭션은, 각 트랜잭션이 생성될 때 상기 목적지 어드레스를 각 데이터 패킷의 상기 길이만큼 증가시킴으로써, 어드레스의 증가하는 열로 생성되는 비동기 데이터 전달 동작 관리 장치.
  33. 제 30항에 있어서, 상기 데이터 전달 동작을 종결하기 위해 필요한 상기 트랜잭션은 고정된 어드레스로 생성되는 비동기 데이터 전달 동작 관리 장치.
  34. 제 30항에 있어서, 상기 버스 구조(58)는 IEEE 1394 표준 버스 구조인 비동기 데이터 전달 동작 관리 장치.
  35. 버스 구조(58)를 통해 응용 장치에 또한 이로부터 비동기 데이터 전달 동작을 관리하기 위하여, 상기 응용 장치(12)와 IEEE 1394 표준 버스 구조 사이를 접속하도록 구성된 비동기 데이터 파이프(20)에 있어서,
    a. 레지스터 파일(26)과,
    b. 상기 응용 장치(12)로부터 데이터 전달 동작에 대한 파라미터를 수신하고, 상기 파라미터를 상기 레지스터 파일(26)에 저장하기 위하여, 상기 레지스터 파일(26)에 접속되고, 상기 응용 장치(12)에 접속하도록 구성된 프로그래밍 회로와,
    c. 상기 레지스터 파일 내의 정보를 템플릿으로서 사용하여, 상기 응용 장치에 의한 직접적인 프로세서 제어 또는 통제 없이 데이터 전달 동작을 종결하기 위해 필요한 트랜잭션을 자동으로 생성하기 위한, 상기 레지스터 파일(26)에 접속된 자동 트랜잭션 생성 회로를 포함하는 비동기 데이터 파이프.
  36. 제 35항에 있어서, 상기 레지스터 파일(26)은, 목적지 어드레스, 전달될 데이터의 길이, 전달될 각 데이터 패킷의 길이 및 상기 전달의 방향을 포함하는 비동기 데이터 파이프.
  37. 제 36항에 있어서, 상기 데이터 전달 동작을 종결하기 위해 필요한 상기 트랜잭션은 어드레스의 증가하는 열로 생성되는 비동기 데이터 파이프.
  38. 제 36항에 있어서, 상기 데이터 전달 동작을 종결하기 위해 필요한 상기 트랜잭션은 고정된 어드레스로 생성되는 비동기 데이터 파이프.
  39. 제 36항에 있어서, 상기 레지스터 파일(26)은 전달될 나머지 패킷 수를 나타내는 패킷 카운터 값을 더 포함하며, 상기 패킷 카운터 값은 데이터의 각 패킷이 전달된 후 감소되는 비동기 데이터 파이프.
  40. 제 39항에 있어서, 상기 응용 장치(12)는 상기 레지스터 파일(26) 내의 소정의 필드에 기록함으로써 상기 패킷 카운터 값을 자동으로 증가시키는 비동기 데이터 파이프.
  41. 응용 장치와 버스 구조 사이에 접속하도록 구성된 비동기 데이터 파이프에 있어서,
    a. 데이터 전달 동작에 관한 파라미터를 수신하도록 구성된 인터페이스 회로로서, 상기 파라미터는 상기 버스 구조의 어드레스 공간내의 어드레스, 데이터 패킷 길이 및 전달 방향을 포함하는, 인터페이스 회로와,
    b. 직접적인 프로세서 제어 없이, 상기 버스 구조에 접속된 노드와 상기 응용 장치 사이에서 상기 데이터 전달 동작을 종료하는데 필요한 트랜잭션을 생성하도록 구성된 트랜잭션 생성 회로로서, 상기 트랜잭션은 상기 각 데이터 패킷 길이만큼 어드레스를 증가시킴으로써 어드레스의 증가하는 열로 생성되는 트랜잭션 생성 회로를 포함하는 비동기 데이터 파이프.
  42. 제 41항에 있어서, 레지스터 파일을 더 포함하며, 여기서 상기 응용 장치는 상기 파라미터를 저장하는 비동기 데이터 파이프.
  43. 제 42항에 있어서, 상기 레지스터 파일은 상기 트랜잭션을 생성하기 위한 템플릿으로 사용되는 비동기 데이터 파이프.
  44. 제 41항에 있어서, 데이터를 상기 응용 장치에 보내고, 상기 응용 장치로부터 데이터를 수신하기 위해 상기 응용 장치에 접속된 데이터 버퍼를 더 포함하는 비동기 데이터 파이프.
  45. 제 41항에 있어서, 상기 버스 구조는 IEEE 1394 표준 버스 구조인 비동기 데이터 파이프.
  46. 제 42항에 있어서, 상기 레지스터 파일은 전달될 남은 패킷 수를 나타내는 패킷 카운터 값을 포함하는 비동기 데이터 파이프.
  47. 제 46항에 있어서, 상기 응용 장치는 상기 레지스터 파일 내의 소정의 필드에 기록함으로써 상기 패킷 카운터 값을 증가시키는 비동기 데이터 파이프.
  48. 제 41항에 있어서, 상기 파라미터는 전달될 데이터의 길이를 더 포함하는 비동기 데이터 파이프.
  49. 제 41항에 있어서, 상기 전달 방향은 상기 응용 장치로 향하는 것과 상기 응용 장치로부터 오는 것중에서 선택되는 비동기 데이터 파이프.
  50. 제 4항에 있어서, 상기 전달 방향은 상기 응용 장치로 향하는 것과 상기 응용 장치로부터 오는 것중에서 선택되는 비동기 데이터 파이프.
  51. 제 36항에 있어서, 상기 전달 방향은 상기 응용 장치로 향하는 것과 상기 응용 장치로부터 오는 것중에서 선택되는 비동기 데이터 파이프.
  52. 버스 구조에 접속하기 위한 비동기 데이터 파이프에 있어서,
    a. 버스를 통해 데이터 전달 동작을 위한 파라미터 세트를 제공하며, 상기 데이터 전달 동작을 시작하도록 구성된 프로세서로서, 상기 파라미터는 데이터 패킷 길이와 상기 버스에 접속된 노드 내의 어드레스를 포함하는, 프로세서와,
    b. 시작한 이후 상기 프로세서로부터의 개입 없이, 상기 데이터 전달 동작을 위해 상기 버스 상에 일련의 트랜잭션을 생성하도록 구성된 회로로서, 상기 일련의 트랜잭션은 상기 패킷 길이만큼 상기 노드 내의 상기 주소를 증가시킴으로써 형성된 어드레스를 갖는, 회로를 포함하는 비동기 데이터 파이프.
  53. 제 52항에 있어서, 상기 버스 구조는 IEEE 1394 표준 버스 구조인 비동기 데이터 파이프.
KR10-1998-0706804A 1996-03-07 1997-02-19 응용장치와버스구조사이의비동기데이터전달을자동으로관리하기위한비동기데이터파이프 KR100439539B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/612,321 US6519268B1 (en) 1996-03-07 1996-03-07 Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US8/612,321 1996-03-07
US08/612,321 1996-03-07

Publications (2)

Publication Number Publication Date
KR19990087389A KR19990087389A (ko) 1999-12-27
KR100439539B1 true KR100439539B1 (ko) 2004-11-03

Family

ID=24452676

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0706804A KR100439539B1 (ko) 1996-03-07 1997-02-19 응용장치와버스구조사이의비동기데이터전달을자동으로관리하기위한비동기데이터파이프

Country Status (10)

Country Link
US (4) US6519268B1 (ko)
EP (1) EP0885418B1 (ko)
JP (1) JP4155413B2 (ko)
KR (1) KR100439539B1 (ko)
AT (1) ATE198237T1 (ko)
AU (1) AU2129997A (ko)
CA (1) CA2247341C (ko)
DE (1) DE69703732T2 (ko)
TW (1) TW381233B (ko)
WO (1) WO1997033230A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US6233637B1 (en) * 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US5978858A (en) * 1997-09-30 1999-11-02 Compaq Computer Corporation Packet protocol and distributed burst engine
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
US6292844B1 (en) * 1998-02-12 2001-09-18 Sony Corporation Media storage device with embedded data filter for dynamically processing data during read and write operations
US6912566B1 (en) * 1998-07-28 2005-06-28 Siemens Aktiengesellschaft Memory device and method for operating the memory device
US6496862B1 (en) 1998-08-25 2002-12-17 Mitsubishi Electric Research Laboratories, Inc. Remote monitoring and control of devices connected to an IEEE 1394 bus via a gateway device
US6505255B1 (en) 1999-04-29 2003-01-07 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Method for formatting and routing data between an external network and an internal network
US6445711B1 (en) * 1999-04-23 2002-09-03 Sony Corporation Method of and apparatus for implementing and sending an asynchronous control mechanism packet used to control bridge devices within a network of IEEE STD 1394 serial buses
US6523064B1 (en) 1999-04-29 2003-02-18 Mitsubishi Electric Research Laboratories, Inc Network gateway for collecting geographic data information
US6633547B1 (en) 1999-04-29 2003-10-14 Mitsubishi Electric Research Laboratories, Inc. Command and control transfer
US6378000B1 (en) 1999-04-29 2002-04-23 Mitsubish Electric Research Laboratories, Inc Address mapping in home entertainment network
JP2001244952A (ja) * 2000-02-29 2001-09-07 Sony Corp 通信制御装置
FR2813408B1 (fr) * 2000-08-29 2006-08-04 Canon Kk Procedes de transfert de types multiples de donnees au sein d'un noeud de communication, et reseaux comportant un tel noeud
US8370517B2 (en) * 2001-09-27 2013-02-05 International Business Machines Corporation Conserving energy in a data processing network
US7248568B1 (en) * 2002-02-26 2007-07-24 Marvell International, Ltd. Apparatus for detecting hidden nodes in a wireless network
DE10302363A1 (de) * 2003-01-22 2004-08-05 Deutsche Thomson-Brandt Gmbh Verfahren zum Betreiben eines Netzwerks von Schnittstellenknoten und Schnittstelleneinrichtung
US7983142B2 (en) 2004-03-30 2011-07-19 Intel Corporation Apparatus, systems, and methods for the reception and synchronization of asynchronous signals
DE102004045118A1 (de) * 2004-09-17 2006-03-23 Robert Bosch Gmbh Verfahren und Vorrichtung zur Datenübertragung
US8156220B1 (en) * 2007-09-28 2012-04-10 Emc Corporation Data storage system
US9063922B2 (en) 2012-12-18 2015-06-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Firmware generated register file for use in hardware validation
US10223407B2 (en) * 2014-10-31 2019-03-05 Cisco Technology, Inc. Asynchronous processing time metrics
US11550982B2 (en) 2015-11-04 2023-01-10 Chronos Tech Llc Application specific integrated circuit interconnect
US10073939B2 (en) 2015-11-04 2018-09-11 Chronos Tech Llc System and method for application specific integrated circuit design
US9977853B2 (en) 2015-11-04 2018-05-22 Chronos Tech Llc Application specific integrated circuit link
WO2017124012A1 (en) * 2016-01-13 2017-07-20 Locus-Control Llc Low power communications system
US10181939B2 (en) 2016-07-08 2019-01-15 Chronos Tech Llc Systems and methods for the design and implementation of an input and output ports for circuit design
US10637592B2 (en) * 2017-08-04 2020-04-28 Chronos Tech Llc System and methods for measuring performance of an application specific integrated circuit interconnect
CN109919359A (zh) * 2019-02-01 2019-06-21 陕西科技大学 一种基于adp算法的车辆路径规划方法
US11087057B1 (en) 2019-03-22 2021-08-10 Chronos Tech Llc System and method for application specific integrated circuit design related application information including a double nature arc abstraction

Family Cites Families (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2221629C3 (de) 1972-05-03 1978-04-27 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren zur Synchronisierung in Zeitmultiplex-Übertragungssystemen
US3906484A (en) 1972-09-13 1975-09-16 Westinghouse Electric Corp Decoder input circuit for receiving asynchronous data bit streams
NL7313756A (ko) 1972-10-11 1974-04-16
US4067059A (en) 1976-01-29 1978-01-03 Sperry Rand Corporation Shared direct memory access controller
US4218756A (en) 1978-06-19 1980-08-19 Bell Telephone Laboratories, Incorporated Control circuit for modifying contents of packet switch random access memory
US4409656A (en) 1980-03-13 1983-10-11 Her Majesty The Queen, In Right Of Canada As Represented By The Minister Of National Defense Serial data bus communication system
US4395710A (en) 1980-11-26 1983-07-26 Westinghouse Electric Corp. Bus access circuit for high speed digital data communication
US4379294A (en) 1981-02-12 1983-04-05 Electric Power Research Institute, Inc. Data highway access control system
US4493021A (en) 1981-04-03 1985-01-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multicomputer communication system
US4507732A (en) 1981-10-05 1985-03-26 Burroughs Corporation I/O subsystem using slow devices
US4633392A (en) 1982-04-05 1986-12-30 Texas Instruments Incorporated Self-configuring digital processor system with logical arbiter
GB8304950D0 (en) 1983-02-22 1983-03-23 Int Computers Ltd Data communication systems
US4897783A (en) 1983-03-14 1990-01-30 Nay Daniel L Computer memory system
US4857910A (en) 1983-12-19 1989-08-15 Pitney Bowes Inc. Bit-map CRT display control
US4739323A (en) 1986-05-22 1988-04-19 Chrysler Motors Corporation Serial data bus for serial communication interface (SCI), serial peripheral interface (SPI) and buffered SPI modes of operation
EP0267974B1 (en) 1986-11-14 1992-02-19 International Business Machines Corporation Control interface for transferring data between a data processing unit and input/output devices
US4972470A (en) 1987-08-06 1990-11-20 Steven Farago Programmable connector
US4998245A (en) * 1987-12-17 1991-03-05 Matsushita Electric Industrial Co., Ltd. Information transmission system having collective data transmission and collection devices
US5005151A (en) 1988-05-13 1991-04-02 Dallas Semiconductor Corporation Interleaved arbitration scheme for interfacing parallel and serial ports to a parallel system port
US5140679A (en) 1988-09-14 1992-08-18 National Semiconductor Corporation Universal asynchronous receiver/transmitter
US5008879B1 (en) 1988-11-14 2000-05-30 Datapoint Corp Lan with interoperative multiple operational capabilities
US5359713A (en) 1989-06-01 1994-10-25 Legato Systems, Inc. Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system
JPH03123232A (ja) 1989-10-06 1991-05-27 Matsushita Electric Ind Co Ltd データ伝送制御処理方法
JPH03156554A (ja) 1989-11-14 1991-07-04 Hitachi Ltd データ転送制御方式
FR2658971B1 (fr) 1990-02-23 1995-07-28 Europ Rech Electr Lab Procede de traitement des donnees numeriques de controle associees a un signal video de type hd-mac et dispositif pour la mise en óoeuvre du procede.
DE69132300T2 (de) 1990-03-12 2000-11-30 Hewlett Packard Co Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
US5325510A (en) 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5343469A (en) 1990-06-14 1994-08-30 Nec Corporation Communication system and communication devices having lock function
US5546553A (en) 1990-09-24 1996-08-13 Texas Instruments Incorporated Multifunctional access devices, systems and methods
US5307491A (en) 1991-02-12 1994-04-26 International Business Machines Corporation Layered SCSI device driver with error handling circuit providing sense data from device directly to the driver on the occurrence of an error
DE4129205A1 (de) 1991-03-28 1992-10-01 Bosch Gmbh Robert Verfahren zum aufbau von botschaften fuer den datenaustausch und/oder fuer die synchronisation von prozessen in datenverarbeitungsanlagen
US5369773A (en) 1991-04-26 1994-11-29 Adaptive Solutions, Inc. Neural network using virtual-zero
US5276684A (en) 1991-07-22 1994-01-04 International Business Machines Corporation High performance I/O processor
JP3243803B2 (ja) 1991-08-28 2002-01-07 ソニー株式会社 Av機器
US5487153A (en) 1991-08-30 1996-01-23 Adaptive Solutions, Inc. Neural network sequencer and interface apparatus
EP0543512B1 (en) 1991-11-19 1999-10-06 International Business Machines Corporation Multiprocessor system
US5471632A (en) 1992-01-10 1995-11-28 Digital Equipment Corporation System for transferring data between a processor and a system bus including a device which packs, unpacks, or buffers data blocks being transferred
US5475860A (en) 1992-06-15 1995-12-12 Stratus Computer, Inc. Input/output control system and method for direct memory transfer according to location addresses provided by the source unit and destination addresses provided by the destination unit
US5497466A (en) 1992-07-17 1996-03-05 Texas Instruments Inc. Universal address generator
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
EP0588046A1 (en) 1992-08-14 1994-03-23 International Business Machines Corporation IEEE standard 802.2 virtual device driver
US5647057A (en) * 1992-08-24 1997-07-08 Texas Instruments Incorporated Multiple block transfer mechanism
US5499344A (en) 1992-10-07 1996-03-12 Texas Instruments Incorporated Programmable dual port data unit for interfacing between multiple buses
EP0596651A1 (en) 1992-11-02 1994-05-11 National Semiconductor Corporation Network for data communication with isochronous capability
US5544324A (en) 1992-11-02 1996-08-06 National Semiconductor Corporation Network for transmitting isochronous-source data using a frame structure with variable number of time slots to compensate for timing variance between reference clock and data rate
US5550802A (en) 1992-11-02 1996-08-27 National Semiconductor Corporation Data communication network with management port for isochronous switch
KR100305268B1 (ko) 1992-11-02 2001-11-22 아담 씨. 스트리겔 스위칭메카니즘에서의등시(等時)데이타의국부루프백
EP0596648A1 (en) 1992-11-02 1994-05-11 National Semiconductor Corporation Network link endpoint capability detection
US5361261A (en) 1992-11-02 1994-11-01 National Semiconductor Corporation Frame-based transmission of data
KR940017376A (ko) 1992-12-21 1994-07-26 오오가 노리오 송신 방법, 수신 방법, 통신 방법 및 쌍방향 버스 시스템
EP0607733A1 (en) 1993-01-08 1994-07-27 International Business Machines Corporation Apparatus and method for data communications between nodes
US5400340A (en) 1993-03-04 1995-03-21 Apple Computer, Inc. End of packet detector and resynchronizer for serial data buses
GB2275852B (en) 1993-03-05 1997-02-26 Sony Broadcast & Communication Signal synchroniser with resynchronise control
US5689678A (en) 1993-03-11 1997-11-18 Emc Corporation Distributed storage array system having a plurality of modular control units
US5412698A (en) 1993-03-16 1995-05-02 Apple Computer, Inc. Adaptive data separator
US5509126A (en) 1993-03-16 1996-04-16 Apple Computer, Inc. Method and apparatus for a dynamic, multi-speed bus architecture having a scalable interface
US5559967A (en) * 1993-03-18 1996-09-24 Apple Computer, Inc. Method and apparatus for a dynamic, multi-speed bus architecture in which an exchange of speed messages occurs independent of the data signal transfers
EP0689748B1 (en) 1993-03-20 1998-09-16 International Business Machines Corporation Method and apparatus for extracting connection information from protocol headers
DE4323405A1 (de) 1993-07-13 1995-01-19 Sel Alcatel Ag Zugangskontrollverfahren für einen Pufferspeicher sowie Vorrichtung zum Zwischenspeichern von Datenpaketen und Vermittlungsstelle mit einer solchen Vorrichtung
JP3373607B2 (ja) * 1993-09-01 2003-02-04 富士通株式会社 プロセッサの制御機構検証用命令列の自動生成方法及び装置
US5887145A (en) 1993-09-01 1999-03-23 Sandisk Corporation Removable mother/daughter peripheral card
US5444709A (en) 1993-09-30 1995-08-22 Apple Computer, Inc. Protocol for transporting real time data
US5446854A (en) 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
US5682493A (en) 1993-10-21 1997-10-28 Sun Microsystems, Inc. Scoreboard table for a counterflow pipeline processor with instruction packages and result packages
CA2134061A1 (en) 1993-10-28 1995-04-29 Aaron William Ogus Frame buffering of network packets
JP3307085B2 (ja) * 1993-12-10 2002-07-24 ソニー株式会社 通信方法及び電子機器
US5835726A (en) 1993-12-15 1998-11-10 Check Point Software Technologies Ltd. System for securing the flow of and selectively modifying packets in a computer network
US5659780A (en) 1994-02-24 1997-08-19 Wu; Chen-Mie Pipelined SIMD-systolic array processor and methods thereof
EP1087571B1 (en) * 1994-03-09 2003-06-04 Matsushita Electric Industrial Co., Ltd. Data transmission system and method
US5465402A (en) 1994-03-23 1995-11-07 Uniden America Corp. Automatic frequency transfer and storage method
US5566174A (en) 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
JP3129143B2 (ja) 1994-05-31 2001-01-29 松下電器産業株式会社 データ転送方法
EP0765501B1 (en) * 1994-06-15 1999-03-03 Thomson Consumer Electronics, Inc. Smart card message transfer without microprocessor intervention
US5689244A (en) 1994-06-24 1997-11-18 Sony Corporation Communication system and electronic apparatus
JP3458469B2 (ja) 1994-07-15 2003-10-20 ソニー株式会社 信号受信装置及び通信方法
JP3203978B2 (ja) 1994-07-25 2001-09-04 ソニー株式会社 データ送受信装置、データ受信装置及びデータ送信装置
US5706439A (en) 1994-09-27 1998-01-06 International Business Machines Corporation Method and system for matching packet size for efficient transmission over a serial bus
US5687316A (en) 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US6205538B1 (en) * 1994-08-24 2001-03-20 Sun Microsystems, Inc. Instruction result labeling in a counterflow pipeline processor
JP3561969B2 (ja) 1994-08-30 2004-09-08 ソニー株式会社 編集方法及び編集制御機器
US5586264A (en) 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
US5603058A (en) 1994-09-08 1997-02-11 International Business Machines Corporation Video optimized media streamer having communication nodes received digital data from storage node and transmitted said data to adapters for generating isochronous digital data streams
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5548587A (en) 1994-09-12 1996-08-20 Efficient Networks, Inc. Asynchronous transfer mode adapter for desktop applications
US5617419A (en) * 1994-09-20 1997-04-01 International Business Machines Corporation Adapting switch port and work station communication adapters to data frame types with disparate formats and data rates
JP3371174B2 (ja) 1994-09-22 2003-01-27 ソニー株式会社 パケット受信装置
US5632016A (en) 1994-09-27 1997-05-20 International Business Machines Corporation System for reformatting a response packet with speed code from a source packet using DMA engine to retrieve count field and address from source packet
US5619646A (en) 1994-09-27 1997-04-08 International Business Machines Corporation Method and system for dynamically appending a data block to a variable length transmit list while transmitting another data block over a serial bus
US5504757A (en) 1994-09-27 1996-04-02 International Business Machines Corporation Method for selecting transmission speeds for transmitting data packets over a serial bus
US5640592A (en) 1994-09-30 1997-06-17 Mitsubishi Kasei America, Inc. System for transferring utility algorithm stored within a peripheral device to a host computer in a format compatible with the type of the host computer
US5828903A (en) 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
WO1996013776A1 (en) 1994-10-31 1996-05-09 Intel Corporation M & a for exchanging data, status, and commands over a hierarchical serial bus assembly using communication packets
US5602853A (en) * 1994-11-03 1997-02-11 Digital Equipment Corporation Method and apparatus for segmentation and reassembly of ATM packets using only dynamic ram as local memory for the reassembly process
US5704052A (en) 1994-11-06 1997-12-30 Unisys Corporation Bit processing unit for performing complex logical operations within a single clock cycle
US5664124A (en) 1994-11-30 1997-09-02 International Business Machines Corporation Bridge between two buses of a computer system that latches signals from the bus for use on the bridge and responds according to the bus protocols
KR0138964B1 (ko) 1994-12-14 1998-06-15 김주용 데이타 포멧 변화기를 포함한 차분 펄스 코드 변조기
US5526353A (en) 1994-12-20 1996-06-11 Henley; Arthur System and method for communication of audio data over a packet-based network
US5533018A (en) 1994-12-21 1996-07-02 National Semiconductor Corporation Multi-protocol packet framing over an isochronous network
US5835733A (en) 1994-12-22 1998-11-10 Texas Instruments Incorporated Method and apparatus for implementing a single DMA controller to perform DMA operations for devices on multiple buses in docking stations, notebook and desktop computer system
US5872983A (en) 1994-12-22 1999-02-16 Texas Instruments Incorporated Power management interface system for use with an electronic wiring board article of manufacture
US5533021A (en) 1995-02-03 1996-07-02 International Business Machines Corporation Apparatus and method for segmentation and time synchronization of the transmission of multimedia data
CN1183841A (zh) * 1995-02-13 1998-06-03 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5559796A (en) 1995-02-28 1996-09-24 National Semiconductor Corporation Delay control for frame-based transmission of data
US5784712A (en) * 1995-03-01 1998-07-21 Unisys Corporation Method and apparatus for locally generating addressing information for a memory access
US5594732A (en) 1995-03-03 1997-01-14 Intecom, Incorporated Bridging and signalling subsystems and methods for private and hybrid communications systems including multimedia systems
US5519701A (en) 1995-03-29 1996-05-21 International Business Machines Corporation Architecture for high performance management of multiple circular FIFO storage means
JP3249334B2 (ja) 1995-04-06 2002-01-21 株式会社東芝 ディジタルインターフェース装置及びディジタルインターフェース方法
US5655138A (en) 1995-04-11 1997-08-05 Elonex I. P. Holdings Apparatus and method for peripheral device control with integrated data compression
FI98028C (fi) 1995-05-03 1997-03-25 Nokia Mobile Phones Ltd Datasovitin
US5761464A (en) 1995-05-22 1998-06-02 Emc Corporation Prefetching variable length data
US5793953A (en) * 1995-07-07 1998-08-11 Sun Microsystems, Inc. Method and apparatus for allowing packet data to be separated over multiple bus targets
US5841771A (en) * 1995-07-07 1998-11-24 Northern Telecom Limited Telecommunications switch apparatus and method for time switching
US5815678A (en) 1995-07-14 1998-09-29 Adaptec, Inc. Method and apparatus for implementing an application programming interface for a communications bus
US5606559A (en) 1995-08-11 1997-02-25 International Business Machines Corporation System and method for an efficient ATM adapter/device driver interface
US5787298A (en) 1995-08-18 1998-07-28 General Magic, Inc. Bus interface circuit for an intelligent low power serial bus
US5752076A (en) 1995-08-31 1998-05-12 Intel Corporation Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
US5832492A (en) * 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
US5692211A (en) 1995-09-11 1997-11-25 Advanced Micro Devices, Inc. Computer system and method having a dedicated multimedia engine and including separate command and data paths
US6122279A (en) * 1995-10-02 2000-09-19 Virata Limited Asynchronous transfer mode switch
US5701302A (en) 1995-10-25 1997-12-23 Motorola, Inc, Method and apparatus for adaptively companding data packets in a data communication system
US5872569A (en) * 1995-10-30 1999-02-16 Xerox Corporation Apparatus and method for programming and/or controlling output of a job in a document processing system
US5751951A (en) 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
US5970236A (en) 1995-11-14 1999-10-19 Compaq Computer Corporation Circuit for selectively performing data format conversion
US5812883A (en) 1995-11-22 1998-09-22 Mitsubishi Chemical America, Inc. System for reading and storing formatting information after formatting a first storage medium and using the stored formatting information to format a second storage medium
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US6631435B1 (en) * 1996-02-02 2003-10-07 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US5991520A (en) * 1996-02-02 1999-11-23 Sony Corporation Application programming interface for managing and automating data transfer operations between applications over a bus structure
US5799041A (en) 1996-02-05 1998-08-25 Xinex Networks Inc. Network for multimedia asynchronous transfer mode digital signal transmission and components thereof
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US6233637B1 (en) * 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US5828416A (en) 1996-03-29 1998-10-27 Matsushita Electric Corporation Of America System and method for interfacing a transport decoder to a elementary stream video decorder
US5761430A (en) 1996-04-12 1998-06-02 Peak Audio, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
KR19990044590A (ko) 1996-07-15 1999-06-25 니시무로 타이죠 디지탈 인터페이스를 구비하는 장치, 이 장치를 이용한 네트워크 시스템 및 카피 방지 방법
US5951019A (en) * 1996-09-05 1999-09-14 Centre For Engineering Research Inc. Method of forming a metal-to-metal seal in high pressure applications with low contact stress
US5761457A (en) 1996-10-21 1998-06-02 Advanced Micro Devices Inc. Inter-chip bus with fair access for multiple data pipes
US5774683A (en) 1996-10-21 1998-06-30 Advanced Micro Devices, Inc. Interconnect bus configured to implement multiple transfer protocols
US5832245A (en) 1996-10-21 1998-11-03 Advanced Micro Devices, Inc. Method for isochronous flow control across an inter-chip bus
US5835793A (en) 1997-05-02 1998-11-10 Texas Instruments Incorporated Device and method for extracting a bit field from a stream of data
US5938752C1 (en) * 1997-05-20 2002-02-05 Microsoft Corp System and method for encapsulating legacy data transport protocols for ieee 1394 serial bus
US6085270A (en) 1998-06-17 2000-07-04 Advanced Micro Devices, Inc. Multi-channel, multi-rate isochronous data bus
JP4318649B2 (ja) 2005-02-01 2009-08-26 因幡電機産業株式会社 コーナー用化粧カバー

Also Published As

Publication number Publication date
US7567590B2 (en) 2009-07-28
US20090268760A1 (en) 2009-10-29
AU2129997A (en) 1997-09-22
EP0885418A1 (en) 1998-12-23
EP0885418B1 (en) 2000-12-20
TW381233B (en) 2000-02-01
US7145921B2 (en) 2006-12-05
US6519268B1 (en) 2003-02-11
US20060291508A1 (en) 2006-12-28
WO1997033230A1 (en) 1997-09-12
ATE198237T1 (de) 2001-01-15
DE69703732T2 (de) 2001-06-13
JP2000506295A (ja) 2000-05-23
KR19990087389A (ko) 1999-12-27
CA2247341A1 (en) 1997-09-12
JP4155413B2 (ja) 2008-09-24
US20030123475A1 (en) 2003-07-03
CA2247341C (en) 2008-11-04
US7944952B2 (en) 2011-05-17
DE69703732D1 (de) 2001-01-25

Similar Documents

Publication Publication Date Title
KR100439539B1 (ko) 응용장치와버스구조사이의비동기데이터전달을자동으로관리하기위한비동기데이터파이프
US6651119B2 (en) Method for allocating priorities to plurality of DMA engines for processing data packets based on bus phase and transactions status
US6266727B1 (en) Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US6513085B1 (en) Link/transaction layer controller with integral microcontroller emulation
US20010047475A1 (en) Data transfer system, communication device, radio device, dishonest copy preventive method, and record medium having recorded program
WO2000025215A1 (fr) Controleur de transfert de donnees et dispositif electronique
US20030179719A1 (en) Method and apparatus for transmitting packets at a transfer rate that depends on a response from a destination
KR100605657B1 (ko) 수신된 데이터를 처리하는 방법 및 장치와, 하나 이상의 원격 디바이스로부터 데이터를 수신하는 수신 디바이스
US20050044291A1 (en) Data transfer control device and electronic equipment
US6041286A (en) Apparatus for and method of accurately obtaining the cycle time of completion of transmission of video frames within an isochronous stream of data transmitted over an IEEE 1394 serial bus network
US20010044861A1 (en) Information processing apparatus, information processing method and bridge utilizing the same
US6580711B1 (en) Serial interface circuit and signal processing method of the same
JP4033915B2 (ja) データストリーム制御方法及び装置
US4612541A (en) Data transmission system having high-speed transmission procedures
KR100464469B1 (ko) 데이터 전송 제어 장치 및 전자기기
US6421745B1 (en) Asynchronous connections with scattering page tables for transmitting data from a producer device to a consumer device over an IEEE 1394 serial data bus
US20040019712A1 (en) Semiconductor device and method for controlling data transfer
KR20010050416A (ko) 포맷 정보를 저장하는 컨피규레이션 롬을 갖는 장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130612

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140612

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150609

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160617

Year of fee payment: 13

EXPY Expiration of term