KR100294960B1 - 데이타 통신 시스템, 데이타 통신 방법, 및 데이타 통신 장치 - Google Patents

데이타 통신 시스템, 데이타 통신 방법, 및 데이타 통신 장치 Download PDF

Info

Publication number
KR100294960B1
KR100294960B1 KR1019990006186A KR19990006186A KR100294960B1 KR 100294960 B1 KR100294960 B1 KR 100294960B1 KR 1019990006186 A KR1019990006186 A KR 1019990006186A KR 19990006186 A KR19990006186 A KR 19990006186A KR 100294960 B1 KR100294960 B1 KR 100294960B1
Authority
KR
South Korea
Prior art keywords
data
destination
node
source node
segment
Prior art date
Application number
KR1019990006186A
Other languages
English (en)
Other versions
KR19990072918A (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
Priority claimed from JP05726898A external-priority patent/JP3862403B2/ja
Priority claimed from JP10111681A external-priority patent/JPH11308255A/ja
Priority claimed from JP11972798A external-priority patent/JP4046846B2/ja
Application filed by 미다라이 후지오, 캐논 가부시끼가이샤 filed Critical 미다라이 후지오
Publication of KR19990072918A publication Critical patent/KR19990072918A/ko
Application granted granted Critical
Publication of KR100294960B1 publication Critical patent/KR100294960B1/ko

Links

Classifications

    • 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/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/13Flow control; Congestion control in a LAN segment, e.g. ring or bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

통신 시스템 및 통신 프로토콜이 소스 노드와 하나 이상의 행선지 노드를 논리적으로 접속하고, 논리적 접속 관계를 식별하기 위해 접속 ID를 사용하여 노드들 각각 간의 데이타 통신을 제어함으로써 구현된다.
또한, 논리적 접속 관계를 사용하는 데이타 통신의 경우, 통신 시스템과 통신 프로토콜은 행선지 노드 각각의 수신 용량이 다른 경우에도 소스 노드에 의해 순차적으로 전송된 각각의 패킷의 크기와, 각각의 행선지 노드의 수신 버퍼의 크기를 최적으로 설정함으로써 구현된다.

Description

데이타 통신 시스템, 데이타 통신 방법, 및 데이타 통신 장치{DATA COMMUNICATION SYSTEM, DATA COMMUNICATION METHOD, AND DATA COMMUNICATION APPARATUS}
본 발명은 데이타 통신 시스템, 데이타 통신 방법, 데이타 통신 장치에 관한 것이다. 특히 본 발명은 명령 데이타와 혼합된 정보 데이타(화상 데이타를 포함함)를 운반하면서, 고속으로 통신할 수 있는 네트워크에 관한 것이다. 본 발명은 또한 상기 네트워크에 적합한 통신 프로토콜에 관한 것이다.
종래에, 퍼스널 컴퓨터(이하, PC라 함)의 주변 장치중에서 하드 디스크 및 프린터가 가장 흔히 사용되는 것들이다. 이들 주변 장치는 특정 장치 전용의 입력/출력 인터페이스, SCSI(small computer system interfaces) 또는 다른 범용 인터페이스와 같은 디지털 인터페이스를 거쳐 PC에 접속된다.
한편, 최근에는 디지털 카메라, 디지털 비디오 카메라와 같이,AV(Audio/Visual) 장치가 PC 주변 장치중 하나로서 관심을 얻고 있다. AV 장치 또한 전용의 인터페이스를 거쳐 PC에 접속된다.
도 1은 PC 및 AV 장치로 구성된 종래 통신 시스템을 도시한 도면이다.
도 1에서, 참조 번호(101)는 AV 장치(여기서는, 디지털 카메라); 참조 번호(102)는 PC, 참조 번호(103)는 프린터이다.
디지털 카메라(101)에서, 참조 번호(104)는 압축후 디지털 화상을 기록하는 메모리, 번호(105)는 메모리(104) 상에 기록되어 있는 압축된 화상 데이타를 신장하여 디코딩하는 디코딩부를 나타내고, 화상 처리부(106), D/A 변환기(107), EVF로 형성된 디스플레이(108), 및 디지털 카메라(101)와 PC(102)를 접속하는 전용의 디지털 I/O부(109)를 나타낸다.
PC(102)에서, 참조 번호(110)는 PC(102)와 디지털 카메라(101)를 접속하는 전용의 디지털 I/O부를 나타내고, 키보드, 마우스 등으로 형성된 조작부(111), 압축된 화상 데이타를 신장하여 디코딩하는 디코딩부(112), 디스플레이(113), 하드 디스크(114), RAM 또는 다른 메모리(115), MPU(116), PCI 버스(117), 및 PC(102)와 프린터(103)를 접속하는 SCSI 인터페이스(118)를 나타낸다.
프린터(103)에서, 프린터(103)와 PC(102)를 접속하는 SCSI(119), 메모리(120), 프린터 헤드(121), 프린터(103)의 동작을 제어하는 프린터 제어기(122), 및 프린터 드라이버(123)를 나타낸다.
종래 통신 시스템에서는 디지털 카메라(101)를 갖는 디지털 인터페이스(디지털 I/O부(109)) 및 프린터(103)를 갖는 디지털 인터페이스(SCSI 인터페이스(110)) 사이에 호환되지 않으므로, 그들을 직접 접속할 수 없다. 그러므로, 예를 들어 디지털 카메라(101)에서 프린터(103)로 정지 화상을 통신하고자 한다면, 임의 환경 하에서 PC의 중재가 필요하다.
또한, 특히 AV 장치에 의해 제공되는 정지 화상 또는 동화상과 같은 대용량 데이타가 전용의 인터페이스 또는 SCSI 인터페이스에 의해 처리되어야 할 때, 이하 문제가 발생된다.
데이타 전송률이 낮다.
통신 케이블이 병렬 통신으로 인해 두껍다.
접속될 수 있는 주변 장치의 수 및 종류가 한정된다.
접속 방법이 제한된다.
실시간 데이타 전송을 실행할 수 없다.
상기 문제를 해결하기 위해, 고속 및 고성능의 차세대 디지털 인터페이스중 하나로서, IEEE(미국 전기 전자 통신 학회) 1394-1995 표준은 이미 공지되어 있다.
IEEE 1394-1995 표준에 근거한 디지털 인터페이스(이하, '1394 인터페이스'라 함)는 다음과 같은 특징을 갖는다.
(1) 데이타 전송 속도는 높다.
(2) 실시간 데이타 전송(즉, 등시성 전송 방법) 및 비동기식 전송 방법 모두가 지원된다.
(3) 높은 자유도로 접속 구성(토플로지)이 가능하다.(4) 플러그 및 플레이 기능과 액티브-라인 삽입/삭제 기능이 지원된다.
그러나, IEEE 1394-1995 표준은 물리적 및 전기적 구성, 가장 기본적인 두개의 데이타 전송 방법 등을 규정하지만, 통신 프로토콜에 데이타 종류, 데이타 포맷 및 대응하는 통신이 수행되게 하는 전송 및 수신에 관한 어떠한 규정도 없다.
또한, IEEE 1394-1995 표준의 등시성 전송의 경우, 송신 패킷에 대한 응답이 규정되어 있지 않다. 그러므로, 각 등시성 패킷이 정확히 수신되는 지의 여부가 보장되지 않는다. 결과적으로, 복수의 연속 데이타를 전송해야 할 때 또는 하나의 파일 데이타를 복수의 데이타로 분할하여 데이타를 정확히 전송하고자 하는 경우는 등시성 전송 방법이 사용될 수 없다.
또한, IEEE 1394-1995 표준의 등시성 전송 방법은 전송 대역이 비어 있더라도 전체 통신 갯수의 한계를 64로 설정한다. 결과적으로, 다수의 통신을 보다 작은 전송 대역으로 수행하고자 할 때, 등시성 전송 방법이 사용될 수 없다.
또한, 노드 전원이 턴 온 및 오프되고 버스 리셋이 노드의 접속/비접속 등에 대응하여 발생할 때 데이타 전송을 중단할 필요가 있다. 그러나, IEEE 1394-1995 표준에 따르면, 데이타 전송이 버스 리셋 또는 전송 에러로 중단되면, 손실된 데이타의 내용은 알 수 없다. 또한, 일단 중단된 전송을 복원하기 위해서는 매우 복잡한 절차를 취할 필요가 있다.
여기서, 버스 리셋은 새로운 토폴로지를 인식하고 각 노드에 할당된 어드레스(노드 ID)를 자동으로 설정하는 기능을 의미한다. 이러한 기능으로, IEEE 1394-1995 표준은 플러그 및 플래이(plug and play) 기능 및 액티브-라인(active-line) 삽입/삭제 기능 모두를 제공하는 것이 가능하다.
또한, IEEE 1394-1995 표준에 따라 형성된 시스템에서, 실시간 능력이 요구되지 않고, 의도된 전송을 위해 비교적 많은 양의 오브젝트 데이타를 하나 이상의 세그먼트 데이타로 분할함으로써, (정지 화상 데이타, 그래픽 데이타, 텍스트 데이타, 파일 데이타, 프로그램 데이타와 같이) 신뢰성있게 수행되어야 하는 상기 오브젝트 데이타를 연속하여 전송하는데 필요한 통신 프로토콜에 대해 어떠한 구체적인 제안도 되어 있지 않다.
또한, IEEE 1394-1995 표준에 근거한 통신 시스템에서, 통신 방법을 사용하여 복수의 장치 간에 데이타 통신을 구현하여 데이타를 비동기로 방송(broadcast)하는데 필요한 통신 프로토콜에 대해 어떠한 구체적인 제안이 없다.
본 발명의 목적은 상술한 문제점을 해결하고자 하는 것이다.
본 발명의 또 다른 목적은 데이타 통신 시스템, 데이타 통신 방법 및 데이타 통신 장치에 대해 실시간 능력을 요하지 않는, 오브젝트 데이타를 연속해서 신뢰할 수 있게 전송할 수 있게 해주는 기술을 제공하는 것이다.
본 발명의 또 다른 목적은 행선지 노드 각각의 수신 용량이 데이타 통신 시스템, 데이타 통신 방법 및 데이타 통신 장치마다 다른 경우일 지라도 소스 노드에 의해 순차적으로 전송되는 패킷 크기 및 각각의 행선지 노드의 수신 버퍼 크기를 최적으로 설정할 수 있게 해주는 기술을 제공하는 것이다.
그러한 목적들에 대한 양호한 실시예로서, 본 발명의 데이타 통신 시스템은
하나 이상의 행선지 노드와 소스 노드 사이에 설정된 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 비동기적으로 전송하기 위한 소스 노드; 및
상기 소스 노드와 상기 하나 이상의 행선지 노드 사이에 논리적 접속 관계를 설정하기 위한 제어기를 포함하며,
상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
본 발명의 다른 실시예로서, 데이타 통신 시스템은
하나 이상의 행선지 노드들 간의 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 방송하기 위한 소스 노드; 및
상기 논리적 접속 관계를 이용하여 상기 소스 노드로부터 오브젝트 데이타 방송을 수신하기 위한 하나 이상의 행선지 노드를 포함하며,
상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
또한, 본 발명의 다른 실시예로서의 데이타 통신 방법은
소스 노드와 하나 이상의 행선지 노드간에 논리적 접속관계를 설정하는 단계; 및
상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 비동기적으로 전송하는 단계를 포함하며,
여기서 상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
본 발명의 또 다른 실시예로서의 데이타 통신 방법은 하나 이상의 행선지 노드와의 논리적 접속 관계를 이용하여 소스 노드로부터 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 방송하는 단계; 및
상기 논리적 접속관계를 이용하여 상기 소스 노드로부터 오브젝트 데이타 방송을 수신하는 단계를 포함하며,
여기서 상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
또한, 본 발명의 다른 실시예에 따른 데이타 통신 방법은
소스 노드와 하나 이상의 행선지 노드간의 논리적 접속 관계를 설정하는 단계; 및
상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 비동기적으로 전송하는데 요구된 초기 설정들중 일부를 설정하는 단계를 포함하며,
여기서, 상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
또한, 본 발명의 다른 실시예로서의 데이타 통신 방법은
소스 노드와 하나 이상의 행선지 노드 간에 논리적 접속 관계를 설정하는 단계; 및
상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 방송하기 위해 요구되는 초기 설정들증 일부를 설정하는 단계를포함하며,
여기서, 상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 다라서 설정된다.
본 발명의 또 다른 실시예로서 데이타 통신 장치는
하나 이상의 행선지 노드와의 논리적 접속 관계를 설정하기 위한 유닛; 및
상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 비동기적으로 전송하기 위한 유닛을 포함하며,
여기서 상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
또한, 본 발명의 실시예로서의 데이타 통신 장치는
소스 노드와 하나 이상의 행선지 노드와의 논리적 접속 관계를 설정하기 위한 유닛; 및
상기 논리적 접속 관계를 이용하여 비동기적으로 전송된 오브젝트 데이타 - 이 오브젝트 데이타는 하나 이상의 세그먼트로 분리됨 - 를 수신하기 위한 수신 유닛을 포함하며,
여기서 상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
또한, 본 발명의 다른 실시예로서 데이타 통신 장치는
하나 이상의 행선지 노드와의 논리적 접속 관계를 설정하기 위한 유닛;
상기 논리적 접속 관계를 이용하므로써 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 방송하기 위한 유닛를 포함하며,여기서 상기 세그먼트의 크기는 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
본 발명의 또 다른 실시예로서의 데이타 통신 장치는
소스 노드와의 논리적 접속 관계를 설정하기 위한 유닛;
상기 논리적 접속 관계를 이용하여 오브젝트 데이타 - 이 오브젝트 데이타는 하나 이상의 세그먼트로 분리됨 - 방송을 수신하기 위한 수신 유닛을 포함하며,
여기서 상기 세그먼트의 크기는 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
또한, 본 발명의 다른 실시예로서의 데이타 통신 장치는
소스 노드와 하나 이상의 행선지 노드간의 논리적 접속 관계를 설정하기 위한 유닛; 및
상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분리된 오브젝트 데이타를 비동기적으로 전송하는데 요구되는 초기화를 부분적으로 설정하기 위한 유닛을 포함하며, 여기서 상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정된다.
앞서 언급한 본 발명의 목적 및 다른 목적들 그리고 이들의 장점은 다음의 상세한 설명으로부터 명백하게 이해할 수 있을 것이다.
도 1은 종래의 시스템을 보여주는 도면.
도 2는 본 실시예에 따른 통신 시스템의 구조 예를 보여주는 블록도.
도 3은 본 발명의 제1 실시예에 따른 통신 프로토콜의 기본 구조의 개념을 설명하기 위한 도면.
도 4a 및 4b는 제1 실시예에 따른 통신 프로토콜의 기본적인 통신 절차를 보여주는 순차적인 차트.
도 5는 제1 실시예에 따른 비동기 방송 패킷의 구조를 보여주는 도면.
도 6a 및 6b는 노드의 각각의 어드레스 공간을 보여주는 도면.
도 7은 제1 실시예에 따른 오브젝트 데이타의 전송 모델의 한 예를 보여주는 도면.
도 8은 본 실시예에 따른 1394 인터페이스의 구조를 보여주는 도면.
도 9는 복수의 제어기가 동일한 접속 ID를 설정하는 구성을 보여주는 도면.
도 10은 접속 설정 및 해제의 절차를 보여주는 도면.
도 11은 하나의 소스 노드와 N개의 행선지 노드간에 하나의 접속 ID가 설정되어 있는 예를 보여주는 도면.
도 12는 N개의 행선지 노드의 수신 버퍼 크기가 동일할 때의 전송 절차를 보여주는 도면.
도 13은 N개의 행선지 노드의 수신 버퍼 크기가 서로 다를 때의 전송 절차를 보여주는 도면.
도 14는 제1 실시예에 따른 오브젝트 데이타의 전송 모델의 다른 예를 보며주는 도면.
도 15a 및 15b는 본 발명에 따른 제2 실시예에 이용된 통신 패킷의 구조를 보여주는 도면.
도 16은 제2 실시예에 따른 통신 프로토콜을 보여주는 순차적인 차트.
도 17은 제2 실시예에 이용된 명령의 포맷을 보여주는 순차적인 차트.
도 18은 SET SOURCE 명령 및 응답의 내용을 보여주는 도면.
도 19는 제2 및 제3 실시예에 이용되는 응답의 포맷을 보여주는 도면.
도 20은 도 16에 도시된 SET SOURCE 명령 및 응답의 내용을 보여주는 도면.
도 21은 도 16에 도시된 OBJECT SEND 명령 및 응답의 내용을 보여주는 도면.
도 22는 제2 실시예에 따른 제어기에 의해 보유되는 접속 관리 이용을 위한 테이블을 보여주는 도면.
도 23은 제2 실시예에 따른 오브젝트 데이타의 전송 모델의 한 예를 보여주는 도면.
도 24는 제2 실시예에 따른 비동기 방송 패킷의 구조를 보여주는 도면.
도 25는 도 16에 도시된 수신 응답 패킷의 구조를 보여주는 도면.
도 26은 도 16에 도시된 CLEAR CONNECTION 명령 및 응답의 내용을 보여주는 도면.
도 27은 제3 실시예에 따른 통신 프로토콜을 보여주는 순차적인 차트.
도 28은 도 27에 도시된 SET DESTINATION 명령 및 응답의 내용을 보여주는 도면.
도 29는 도 27에 도시된 SET SOURCE 명령 및 응답의 내용을 보여주는 도면.
도 30은 제3 실시예에 따른 제어기에 의해 보유된 접속 관리 이용을 위한 테이블을 보여주는 도면.
도 31은 본 발명의 제4 실시예에 따른 오브젝트 데이타의 전송 모델의 한 예를 보여주는 도면.
도 32는 제4 실시예에 따른 통신 프로토콜을 보여주는 순차적인 차트.
도 33은 본 발명의 제5 실시예에 다른 통신 프로토콜의 기본 절차를 도시하는 시퀀스 차트.
도 34는 제5 실시예에 따른 오브젝트 데이타의 전송 모델의 한 예를 도시하는 도면.
도 35는 제5 실시예에 따른 통신 프로토콜의 세부내용을 도시하는 순차적인 차트.
도 36은 제5 실시예에 따른 통신 절차를 도시하는 순서도.
도 37은 본 발명의 제6 실시예에 따른 통신 프로토콜의 세부내용을 도시하는 순차적인 차트.
도 38은 제6 실시예에 따른 통신 절차를 도시하는 순서도.
도 39는 본 발명의 제7 실시예에 따른 통신 프로토콜의 세부내용을 도시하는 순차적인 차트.
도 40은 제7 실시예에 따른 통신 절차를 도시하는 순서도.
도 41은 본 발명의 제8 실시예에 따른 통신 프로토콜의 세부내용을 도시하는 순차적인 차트.
도 42는 제8 실시예에 따른 오브젝트 데이타의 전송 모델의 한 예를 도시하는 도면.
도 43은 제8 실시예에 따른 오브젝트 데이타의 전송 모델의 한 예를 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
10 : 컴퓨터
12 : MPU
14, 44, 62 : 1394 인터페이스
16 : 조작부
18 : 디코더
20 : 디스플레이
22 : 하드 디스크
24 : 내부 메모리
26 : PCI 버스
28 : 디지털 카메라 레코더
30 : 촬상 광학부
32 : 아나로그-디지털 변환기
34 : 화상 처리부
36 : 압축/신장부
38, 40 : 메모리
42 : 데이타 선택기
46, 48 : 메모리 제어부
50 : 제어 유닛
52 : 조작부
54 : 전자 뷰 파인더(EVF)
56 : D/A 변환기
58 : 기록/재생기
60 : 프린터
64 : 데이타 선택기
66 : 조작부
68 : 프린터 제어기
70 : 디코더
72 : 내부 메모리
74 : 화상 처리부
76 : 드라이버
78 : 프린터 헤드
300 : 제어기
302 : 소스 노드
304 : 행선지 노드
308 : 오브젝트 데이타
이하, 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 상세히 설명한다.
도 2는 본 실시예에 따른 데이타 통신 시스템의 하나의 구성예를 도시한 도면이다. 도 2에 도시된 바와 같이, 데이타 통신 시스템은 컴퓨터(10), 카메라 일체형 디지털 비디오코더(28) 및 프린터(60)를 구비한다.
컴퓨터(10)의 구성을 먼저 설명한다. 참조 번호(12)는 컴퓨터(10)의 동작을 제어하는 연산 처리 유닛(MPU)을 나타내며, 번호(14)는 IEEE 1394-1995 표준에 따른 기능 및 본 실시예에서 규정되는 통신 프로토콜에 관한 기능을 갖는 1394 인터페이스이며, 번호(16)는 키보드, 마우스 등으로 구성된 조작부이며, 번호(18)는 압축 코드 디지털 데이타(동화상 데이타, 정지 화상 데이타, 오디오 데이타 등)를 디코드하는 디코더이며, 번호(20)는 CRT 디스플레이, LCD 패널 등으로 구성된 디스플레이이며, 번호(22)는 다양한 디지털 데이타(동화상 데이타, 정지 화상 데이타, 오디오 데이타, 그래픽 데이타, 텍스트 데이타, 프로그램 데이타 등)를 기록하는 하드 디스크(HD)이며, 번호(24)는 내부 메모리이며, 번호(26)는 컴퓨터(10) 내의 각 처리부를 접속하는 PCI 버스와 같은 내부 버스이다.
이제, 카메라 일체형 디지털 비디오코더(이하, DVCR이라 함)(28)를 설명한다. 여기서 참조 번호(30)는 물체의 광학적 화상이 전기적 신호로 변환되는 촬상 광학(픽업)부(opt)를 나타내며, 번호(32)는 아날로그-디지털(A/D) 변환기를, 번호(34)는 디지털 동화상 또는 정지 화상이 소정의 포맷의 디지털 화상 데이타로 변환되는 화상 처리부를, 번호(36)는 압축 코드 디지털 데이타(동화상 데이타, 정지 화상 데이타, 오디오 데이타 등)을 디코드하는 기능 및 고효율로 디지털 화상 데이타를 코딩(예를 들면, 가변 길이를 갖는 데이타를 코딩시키기 위해 MPEG 방법 또는 DV 방법과 같이 소정의 화상 단위당 직교 변환후 데이타를 양자화)하는 기능을 갖는 압축/신장 처리부를, 번호(38)는 고효율로 코딩된 디지털 화상 데이타를 일시 저장하는 메모리를, 번호(40)는 고효율로 코딩되지 않은 디지털 화상 데이타를 일시 저장하는 메모리를, 번호(42)는 데이타 선택기를, 번호(44)는 IEEE 1394-1995 표준에 따른 기능 및 본 실시예에서 규정되는 통신 프로토콜에 관한 기능을 갖는 1394 인터페이스를, 번호(46, 48)는 메모리(38, 40)에/로부터의 기록 및 판독을 제어하는 메모리 제어기를, 번호(50)는 DVCR(28)의 동작을 제어하며, 마이크로컴퓨터가 제공된 제어 유닛(시스템 제어기)을, 번호(52)는 원격 제어기, 조작 패널 등으로 형성된 조작부를, 번호(54)는 전자 뷰 파인터(EVF)를, 번호(56)는 D/A 변환기를, 번호(58)는 다양한 디지털 데이타(동화상 데이타, 정지 화상 데이타, 비디오 데이타 등)를 기록하고 재생하는 것으로, 자기 테이프, 자기 디스크, 자기 광학 디스크와 같은 기록 매체로 형성된 기록 및 재생 유닛을 나타낸다.
이제, 프린터(60)의 구성을 설명한다. 참조 번호(62)는 IEEE 1394-1995 표준에 따른 기능 및 본 실시예에서 규정되는 통신 프로토콜에 관한 기능을 갖는 1394 인터페이스를 나타내고, 데이타 선택기(64), 조작 버튼, 터치 패널 등으로 형성된 조작부(66), 프린터(60)의 동작을 제어하는 프린터 제어기(68), 디코더(70), 내부 메모리(72), 1394 인터페이스를 통해 수신되는 정지 화상 데이타, 텍스트 데이타, 그래픽 데이타 등을 처리하는 화상 처리부(74), 드라이버(76) 및 프린터 헤드(78)를 나타낸다.
도 2에 도시된 바와 같이, 컴퓨터(10), DVCR(28) 및 프린터(60)와 같은 각 통신 장치(이하, '노드'라 함)는 1394 인터페이스(14, 44, 62)(이하, 1394 인터페이스로 형성된 네트워크는 '1394 직렬 버스'라 함)를 거쳐 상호 접속된다. 각각의 노드가 선정된 통신 프로토콜을 정의함으로써, 다양한 오브젝트 데이타(예를 들어, 동화상 데이타, 정지 화상 데이타, 오디오 데이타, 그래픽 데이타, 텍스트 데이타, 프로그램 데이타등)를 송신하는 것이 가능하고, 명령 데이타에 따라 원격 제어를 수행할 수 있다.
이제, 본 실시예의 통신 시스템을 형성하는 각 노드의 동작을 도 2를 참조하여 설명한다.
먼저, 컴퓨터(10)를 형성하는 각 처리부의 기능 및 동작을 설명한다.
본 실시예에 따르면, 컴퓨터(10)는 DVCR(28)과 프린터(60) 사이의 화상 데이타의 송신/수신을 제어하는 제어기 또는 DVCR(28) 및 프린터(60)를 원격 제어를 수행하는 제어기로서 동작한다.
MPU(12)는 하드 디스크(22) 상에 기록된 소프트웨어를 실행한다. 동시에, 다양한 데이타를 내부 메모리(24)로 전송한다. 또한, MPU(12)는 내부 버스(26)와 접속된 각 처리부 사이의 간섭을 이중으로 제어한다.
1394 인터페이스(14)는 1394 직렬 버스에 전송된 화상 데이타를 수신한다. 동시에, 하드 디스크(22) 또는 내부 메모리(24)에 기록된 화상 데이타를 1394 직렬 버스로 송신한다. 또한, 1394 인터페이스(14)는 다른 노드의 원격 제어를 수행하기 위해 1394 직렬 버스상으로 명령 데이타를 송신할 수 있다. 또한, 1394 인터페이스(14)는 1394 직렬 버스를 통해 전송된 신호를 다른 노드로 전송하는 기능도 갖고 있다.
사용자는 조작부(16)을 거쳐 소정의 소프트웨어를 선택하여 MPU(12)가 하드 디스크(22)에 기록된 소프트웨어를 실행하게 한다. 여기서, 이러한 소프트웨어의 정보는 디스플레이 유닛(20)에 의해 사용자에게 제공된다. 소프트웨어에 의해 디코더(18)는 1394 직렬 버스로부터 수신된 화상 데이타를 디코드한다. 디코드된 화상 데이타는 디스플레이 유닛(20)에 의해 사용자에게 제공된다.
이제, DVCR(28)을 형성하는 각 처리부의 기능 및 동작을 설명한다.
본 실시예에 따르면, DVCR(28)은 본 실시예의 통신 프로토콜에 기초하여 화상 데이타를 비동기적으로 전송하는 화상 전송 장치(소스 노드)로서 동작한다.
촬상 광학부(30)는 물체의 광학적 화상을 휘도 신호 Y와 색차 신호 C를 포함하는 전기적 신호로 변환한다. 다음, 그 전기적 신호를 A/D 변환기(32)에 공급한다. A/D 변환기(32)는 이러한 전기적 신호를 디지털화한다.
화상 처리부(34)는 디지털화된 휘도 신호 및 색차 신호의 소정의 처리를 실행한다. 동시에, 그 신호를 멀티플렉스한다. 압축/신장 처리부(36)는 디지털화된 휘도 신호 및 색차 신호의 처리와 병렬로 독립적인 압축 처리 회로를 사용하여 데이타를 압축할 수 있고, 이러한 처리는 공유가능한 압축 처리 회로를 사용하여 시계열로 처리될 수 있다.
또한, 압축/신장 처리부(36)는 전송 경로 에러에 견디도록 압축된 화상 데이타에 셔플링 처리(shuffling processing)한다. 이것에 의해, 연속 코드 에러(즉, 버스트 에러)를 보다 용이하게 교정 또는 보간될 수 있는 분산된 에러(즉, 랜덤 에러)로 변환할 수 있다. 여기서, 화면의 거칠기 또는 정밀도에 기인하는 바이어스된 정보량을 평균화하고자 하면, 이 처리 단계는 압축 처리 전에 실행되어야 한다. 다음, 런(run) 길이와 같은 가변 길이 코딩이 적용될 때 양호한 결과가 얻어진다.
압축/신장 처리부(36)는 셔플링을 복원하기 위해 압축된 화상 데이타에 데이타 식별 정보 ID가 부가한다. 압축/신장 처리부(36)는 데이타가 재생될 때 발생할 수 있는 에러를 저감하기 위해 압축된 화상 데이타에 에러 정정 코드(ECC)를 부가한다.
압축/신장 처리부(36)에서의 화상 데이타 압축은메모리(38) 및 기록 및 재생 유닛(58)에 공급된다. 기록 및 재생 유닛(58)은 ID 및 ECC가 부가되어 있는 압축된 화상 데이타를 자기 테이프 또는 다른 기록 매체에 기록한다. 여기서, 압축된 화상 데이타는 오디오 데이타가 기록되는 영역과 다른 독립 영역에 기록된다.
반면에, 화상 처리부(34)에서 D/A 변환기(56)로 공급된 화상 데이타는 D/A 변환된다. EVF(54)는 D/A 변환기(56)로부터 공급된 아날로그 화상 신호를 디스플레이한다. 또한, 화상 처리부(34)에서 처리된 화상 데이타도 메모리(40)로 공급된다. 여기서, 압축되지 않은 화상 데이타는 메모리(40)에 저장된다.
데이타 선택기(42)는 사용자로부터 지시에 따라 메모리(38) 또는 메모리(40)를 선택하여 압축된 화상 데이타 또는 압축되지 않은 화상 데이타를 1394 인터페이스(44)로 공급한다. 또한, 데이타 선택기(42)는 1394 인터페이스(44)로부터 공급된 화상 데이타를 메모리(38) 또는 메모리(40)에 공급한다.
1394 인터페이스(44)는 다음에 설명하는 바와 같은, 본 실시예의 통신 프로토콜에 따라 압축된 화상 데이타 또는 압축되지 않은 화상 데이타를 비동기적으로 전송한다. 또한, 1394 인터페이스(44)는 DVCR(28)을 제어하기 위해 1394 직렬 버스를 거쳐 제어 명령을 수신한다. 수신된 제어 명령은 데이타 선택기(42)를 거쳐 제어 유닛(50)에 공급된다. 1394 인터페이스(44)는 제어 명령에 대한 응답을 반환한다.
이제, 프린터(60)를 형성하는 각 처리부의 기능 및 동작을 설명한다.
본 실시예에 따르면, 프린터(60)는 예를 들면, 본 실시예의 통신 프로토콜에 따라 비동기적으로 전송된 화상 데이타를 수신함으로써 프린트하는 화상 수신 장치(행선지 노드)로서 동작한다.
1394 인터페이스(62)는 1394 직렬 버스를 거쳐 비동기적으로 전송된 제어 명령 및 화상 데이타를 수신한다. 또한, 1394 인터페이스(62)는 제어 명령에 대한 응답을 송신한다.
수신된 화상 데이타는 데이타 선택기(64)를 거쳐 디코더(70)에 공급된다. 디코더(70)는 화상 데이타를 디코드하고, 그 결과를 화상 처리부(74)로 출력한다. 화상 처리부(74)는 메모리(72)에 디코드된 화상 데이타를 일시적으로 저장한다.
또한, 화상 처리부(74)는 메모리(72)에 일시 저장되어 있는 화상 데이타를 프린팅 데이타로 변환하고, 그 데이타를 프린터 헤드(78)에 공급한다. 프린터 헤드(78)는 프린터 제어기(68)의 제어에 따라 프린팅을 실행한다.
한편, 수신된 제어 명령은 데이타 선택기(64)를 거쳐 프린터 제어기(68)로 입력된다. 프린터 제어기(68)는 제어 데이타에 따라 다양한 프린팅 제어를 실행한다. 예를 들면, 드라이버(76)에 의한 용지 공급, 프린터 헤드(78)의 위치 등을 제어한다.
이제, 본 실시예에 따라 1394 인터페이스(14, 44, 및 62)의 구성을 도 8을 참조하여 상세히 설명한다.
1394 인터페이스는 다수의 계층(계층 배열)으로 기능적으로 구성된다. 도 8에서, 1394 인터페이스는 IEEE 1394-1995 표준에 따른 통신 케이블(801)을 거쳐 다른 노드의 1394 인터페이스에 접속된다. 또한, 1394 인터페이스는 하나 이상의 통신 포트(802)를 갖고, 각각의 통신 포트(802)는 하드웨어 유닛에 포함된 물리적 계층(803)에 접속된다.
도 8에서, 하드웨어 유닛은 물리적 계층(803) 및 링크 계층(804)으로 구성된다. 물리적 계층(803)은 물리적 전기적 인터페이스 및 다른 노드의 버스 리셋의 검출 및 그에 관련된 처리를 수행하며, 입출력 신호의 코딩 및 디코딩, 및 버스 가용성의 간섭을 실행한다. 또한, 링크 계층(804)은 통신 패킷의 발생, 다양한 통신 패킷의 송신 및 수신, 사이클 타이머의 제어 등을 실행한다. 또한, 링크 계층(804)은 다음에 설명하는 바와 같은 비동기 방송 패킷의 발생 및 그의 송신 및 수신하는 기능을 제공한다.
또한, 도 8에서, 펌웨어 유닛은 트랜잭션 계층(805) 및 직렬 버스 메니지먼트부(806)를 구비한다. 트랜잭션 계층(805)은 비동기 전송 방법을 관리하고, 다양한 트랜잭션(판독, 기록, 록킹)을 제공한다. 또한, 트랜잭션 계층(805)은 비동기 방송 트랜잭션의 기능을 제공한다. 직렬 버스 매니지먼트부(806)는 자기 노드를 제어하고, 자기 노드의 접속 상태 및 자기 노드의 ID 정보를 관리하며, 다음에 설명하는 IEEE 1212 CSR 규격에 따라 직렬 버스 네트워크 자원을 관리하는 기능을 제공한다.
도 8에 도시한 하드웨어 유닛 및 펌웨어 유닛은 1394 인터페이스를 반드시 형성하는 것들이다. 그 기본 구성은 IEEE 1394-1995 표준에 의해 규정된다.
또한, 소프트웨어 유닛에 포함된 어플리케이션 계층(807)은 사용된 애플리케이션 소프트웨어에 따라 다르고, 또한 이것은 현재 적용가능한 오브젝트 데이타의 전송을 제어한다.
다음에 설명하는 본 실시예의 통신 프로토콜은 1394 인터페이스를 형성하는 하드웨어 유닛 및 펌웨어 유닛의 기능을 확장하여, 소프트웨어 유닛에 새롭게 규정된 절차를 제공한다.
이제, 본 실시예에서 규정되는 통신 프로토콜의 기본 구성을 도 3을 참조하여 설명한다.
도 3에서, 제어기(300), 소스 노드(302), n(n≥1)개의 행선지 노드(304), 소스 노드의 서브유닛(306), 정지 화상 데이타, 그래픽 데이타, 텍스트 데이타, 파일 데이타, 프로그램 데이타 등의 오브젝트 데이타(308)를 도시하고 있다.
참조 번호(310)는 소정의 행선지 오프셋 #0으로 지정된 행선지 노드(304) 내부의 제1 메모리 공간을 나타내고, 번호(312)는 소스 노드(302)와 행선지 노드(304) 사이의 논리적 접속 관계를 표현하는 제1 접속을 나타낸다. 여기서, 행선지 오프셋은 n개의 행선지 노드(304)에 의해 점유되는 메모리 공간을 공유가능하게(공통으로) 지정하는 어드레스를 의미한다.
참조 번호(314)는 소정의 행선지 오프셋 #n에 의해 지정된 행선지 노드(304) 내부의 n번째 메모리 공간을 나타내고, 번호(316)는 소스 노드(302)와 행선지 노드(304) 사이의 논리적 접속 관계를 표현하는 n번째 접속을 나타낸다.
본 실시예에 따르면, 각 노드는 IEEE 1212 CSR(Control and Status Register Architecture) 규격 (또는 ISO/IEC 13213 : 1994 규격)에 따르는 64비트 어드레스 공간을 사용하여 제1 메모리 공간(310)에서 n번째 메모리 공간(314)까지를 관리한다. IEEE 1212 CRS 규격은 직렬 버스용 제어, 관리, 또는 어드레스 할당을 규정하는 것들이다.
도 6a 및 도 6b는 각 노드에 의해 점유되는 어드레스 공간의 설명도이다. 도 6a는 64비트 어드레스로 제공되는 논리적 메모리 공간을 도시하고 있다. 도 6b는 도 6a에 도시된 메모리 공간의 일부, 예를 들면 상위 16 비트가 FFFF16인 메모리 공간을 도시하고 있다. 도 3에 도시된 첫 번째 메모리 공간(310) 내지 n번째 메모리 공간(314)은 도 6b에 도시된 메모리 공간의 일부를 사용한다. 메모리 공간(310 내지 314) 각각은 대응 어드레스의 하위 48비트를 나타내는 행선지 오프셋에 의해 규정된다.
도 6b에서, 어드레스 00000000000016내지 0000000003FF16은 예약된 영역이다. 오브젝트 데이타(308)가 실제로 기록되는 영역은 하위 48 비트가 FFFFF000040016등이 되는 어드레스를 갖는 영역이다.
도 3에서, 소스 노드(302)는 다음에 설명하는 통신 프로토콜에 따라 오브젝트 데이타(308)를 전송하는 기능을 갖는 노드를 의미한다. 행선지 노드(304)는 소스 노드(302)로부터 전송된 오브젝트 데이타(308)를 수신하는 기능을 갖는 노드를 의미한다. 또한, 제어기(300)는 다음에 설명하는 통신 프로토콜에 따라 소스 노드(302)와 하나 이상의 행선지 노드(304) 사이의 논리적 접속 관계(즉, 상호 접속)를 설정하고, 이를 관리하는 기능을 갖는 노드를 의미한다.
여기서, 제어기(300), 소스 노드(302) 및 행선지 노드(304)는 각각 독립적 노드로서 기능할 수도 있다. 또한, 제어기(300) 및 소스 노드(302)는 하나의 동일한 노드로서 기능할 수도 있다. 또한, 제어기(300) 및 행선지 노드(304)는 하나의 동일한 노드로서 기능할 수도 있다. 이 경우, 제어기(300)와 소스 노드(302) 또는 행선지 노드(304) 사이에서는 트랜잭션이 필요없다. 따라서, 결과적인 통신 절차가 보다 단순해진다.
본 실시예에서, 제어기(300), 소스 노드(302) 및 행선지 노드(304)가 개별 노드로서 각각 기능하도록 배열되는 경우를 설명한다. 예를 들면, 1394 인터페이스(14)가 마련된 컴퓨터(10)는 제어기(300)로서 기능한다. 또한, 1394 인터페이스(44)가 마련된 DVCR(28)은 소스 노드(302)로서 기능한다. 이때, 1394 인터페이스(62)가 마련된 프린터(60)는 행선지 노드(304)로서 기능한다.
실시예에서, 도 3에 도시한 바와 같이 소스 노드(302)와 하나 이상의 행선지노드(304) 사이에는 하나 이상의 접속을 설정할 수 있다. 이들 접속은 임의 데이타 전송이 요구될 때 다음에 설명하는 통신 프로토콜에 따라 하나 이상의 제어기(300)에 의해 설정된다.
본 실시예에 따르면, 하나의 접속용으로 사용될 수 있는 하나 이상의 행선지 오프셋을 설정할 수 있다. 행선지 오프셋의 값은 하나의 선정된 값이 될 수 있거나 또는 제어기(300) 또는 소스 노드(302)에 의해 가변 가능하게 설정될 수 있는 값이 될 수 있다. 이러한 점에서, 접속과 행선지 오프셋 사이의 관계는 다음에 설명하는 통신 프로토콜에 따라 정의된다.
복수의 행선지 오프셋이 하나의 접속용으로 설정될 때, 데이타 통신을 하나의 접속을 사용하여 다수 모드로 구현할 수 있다. 예를 들면, 상이한 행선지 오프셋이 데이타 통신의 각 모드에 할당되면, 하나의 접속을 사용하여 데이타 통신을 1 대 1로, 데이타 통신을 1 대 N으로, 또는 N 대 N으로 동시에 실현할 수 있다.
여기서, 본 실시예에 따르면, 제어기(300)로서 기능하는 컴퓨터(10)는 행선지 노드(304)로서 기능할 수도 있다. 이 경우, 오브젝트 데이타(308)를 전송하도록 하나의 소스 노드(302)와 2개의 행선지 노드(304) 사이에 접속이 설정된다.
또한, 본 실시예에서, 컴퓨터(10)가 제어기(300)로서 기능하는 경우를 설명하였지만, 컴퓨터(10)가 제어기(300)여야 할 필요는 없다. DVCR(28) 또는 프리터(60)가 제어기(300)로서 동작할 수도 있다.
이제, 본 발명에 따라 규정되는 통신 프로토콜의 기본 전송 절차를 설명한다.
도 4a는 하나의 오브젝트 데이타가 제어기(300)에 의해 설정된 접속을 이용하여 전송되는 절차를 도시한 순차적인 차트이다. 도 4b는 하나의 오브젝트 데이타의 전송 도중 버스 리셋 또는 전송 에러가 발생하는 절차를 도시한 순차적인 차트이다.
본 실시예의 통신 프로토콜에 따르면, 임의의 제어기(300)가 접속을 설정한 이후 하나의 오브젝트 데이타가 하나 이상의 '비동기 방송 트랜잭션'에 의해 전송된다. 이하, 도 4a 및 4b와 관련하여 비동기 방송 트랜잭션의 상세한 통신 절차를 설명한다. 또한, 비동기 방송 트랜잭션에 사용되는 패킷(이하, 비동기 방송 패킷(Asynchronous broadcast packet)이라 함)을 도 5를 참조하여 설명한다.
이와 같이, 비동기 방송 트랜잭션 및 비동기 방송 패킷은 본 실시예의 통신 프로토콜에 의해 규정되는 완전히 새로운 통신 절차 및 패킷 포맷이다.
이제, 본 실시예의 통신 프로토콜에 따른 기본 전송 절차를 도 4a를 참조하여 설명한다.
제어기(300)는 소스 노드(302)와 하나 이상의 행선지(304) 사이의 논리적 접속 관계(즉, 상호 접속)를 식별하기 위해 접속 ID를 설정한다. 다음, 제어기(300)는 각 노드에게 접속 ID 및 자신의 월드와이드 고유 ID를 통지하여, 하나의 접속을 설정한다(도 4a의 (401, 402)).
접속 ID의 통지후, 제어기(300)는 소스 노드(302)에게 오브젝트 데이타(308)의 전송 개시를 지시한다(도 4a의 (403)).
전송 개시 지시의 수신후, 소스 노드(302)는 하나 이상의 행선지 노드(304)와 교섭을 실행하여, 비동기 방송 트랜잭션의 초기화 설정을 실행한다(도 4a의 (404, 405)).
초기화 설정이 완료된 후, 소스 노드(302)는 하나 이상의 세그먼트 데이타로 형성된 오브젝트 데이타(308)를 연속해서 방송하기 위해 비동기 방송 트랜잭션을 실행한다(도 4a의 (406) 내지 (409)).
여기서, 본 실시예에 따른 오브젝트 데이타의 전송 모델을 도 7을 참조하여 설명한다. 도 7에서, 오브젝트 데이타는 예를 들면, 128 킬로바이트의 데이타 크기를 갖는 정지 화상 데이타이다.
소스 노드(302)는 각 행선지 노드(304)의 수신 능력에 따라 오브젝트 데이타(308)를 예를 들면 500 세그먼트 데이타(세그먼트당 256 바이트)로 분할한다. 여기서, 하나의 세그먼트 데이타의 데이타 크기는 각 행선지 노드(304)의 내부 버퍼의 크기에 따라 가변인 소스 노드(302)에 의해 설정된다. 도 7은 내부 버퍼가 오브젝트 데이타(308)의 데이타 크기와 동일한 크기로 확보된 경우를 도시하고 있다.
또한, 소스 노드(302)는 적어도 하나의 비동기 방송 트랜잭션의 사용에 의해 하나 이상의 세그먼트 데이타를 전송한다. 도 7에서, 하나의 세그먼트 데이타는 비동기 방송 트랜잭션을 사용하여 전송된다.
모든 세그먼트 데이타의 완료후, 소스 노드(302)는 하나 이상의 행선지 노드(304)와의 데이타 통신을 종료한다(도 4a의 (410, 411)).
이제, 제어기(300)의 동작을 도 4a를 참조하여 설명한다.
제어기(300)는 접속을 설정하기 위해 비동기적으로 사용자에 의해 선택된 하나 이상의 행선지 노드(304)와 소스 노드(302)에 패킷(이하, 접속 설정 패킷이라함)을 전송한다(도 4a의 (401, 402)). 이러한 패킷의 페이 로드(pay load)에서, 제어기(300)의 접속 ID 및 월드와이드 고유 ID가 저장된다.
다음, 제어기(300)는 소스 노드(302)에 전송 명령 패킷(트랜잭션 명령 패킷)를 비동기적으로 전송한다(도 4a의 (403)).
전송 명령 패킷을 수신한 소스 노드(302)는 제어기(300)에 의해 통지된 접속 ID 및 월드와이드 고유 ID를 사용하여 설정을 초기화하고, 비동기 방송 트랜잭션을 실행한다(도 4a, 도 4c의 (404) 내지 (409)). 비동기 방송 트랜잭션에 의해, 소스 노드(302)는 하나이상의 세그먼트 데이타로 형성된 오브젝트 데이타(308)를 연속해서 전송할 수 있다.
여기서, 본 실시예의 통신 프로토콜에 따르면, 제어기(300)는 접속을 행하고 해제하는 것을 관리하는 기능을 제공한다. 그러므로, 오브젝트 데이타(308)의 전송은 일단 접속이 설정되면 소스 노드(302)와 행선지 노드(304) 사이의 교섭에 의해 실행된다.
일련의 비동기 방송 트랜잭션의 완료후, 소스 노드(302)는 세그먼트 종료를 나타내는 비동기 방송 패킷(이하, 세그먼트 종료 패킷이라 함)을 방송한다(도 4a의 (410)).
소스 노드(302)로부터 세그먼트 종료 패킷을 수신한 후, 제어기(300)는 접속을 해제하고 데이타 전송을 완료한다(도 4a의 (411)).
여기서, 세그먼트 종료 패킷이 방송되므로, 그 패킷의 내용은 행선지 노드(304)에 의해 검출될 수 있다. 따라서, 소스 노드(302)와의 접속이 제어기(300)에 의하지 않고, 행선지 노드(304) 자체에 의해 해제되도록 구조가 배열될 수 있다.
이제, 소스 노드(302)의 동작을 도 4a를 참조하여 상세히 설명한다.
제어기(300)로부터 접속 설정 패킷 및 전송 명령 패킷을 수신함에 따라, 소스 노드(302)는 데이타 전송을 요구하는 비동기 방송 패킷(이하, 송신 요구 패킷이라 함)을 각 행선지 노드(304)에 송신한다(도 4a의 (404)).
여기서, 송신 요구 패킷은 실행전에 오브젝트 데이타(308)의 비동기 방송 트랜잭션에서의 초기 설정에 필요한 초기 정보를 얻기 위한 요구 패킷이다. 제어기(300)에 의해 지정된 접속 ID 및 제어기(300)의 월드와이드 고유 ID가 이러한 패킷에 기록된다.
행선지 노드(304)는 송신 요구 패킷에 대한 응답을 나타내는 비동기 방송 패킷(이하, 확인 응답 패킷(ack response packet)이라 함)을 방송한다(도 4a의 (405)). 여기서, 송신 요구 패킷에서와 동일한 접속 ID 및 월드와이드 고유 ID가 확인 응답 패킷에 저장된다. 따라서, 소스 노드(302)가 수신된 패킷의 접속 ID 및 월드와이드 ID를 확인하여 확인 응답 패킷이 전송된 접속을 식별할 수 있다.
여기서, 각 행선지 노드(304)에 의해 얻어질 수 있는 내부 버퍼의 크기 및 소정의 메모리 공간을 지정하는 오프셋 어드레스가 확인 응답 패킷에 저장된다. 확인 응답 패킷을 수신한 후, 소스 노드(302)는 각 행선지 노드(304)의 메모리 공간을 공유가능하게 지정하는 행선지 오프셋을 설정하고, 비동기 방송 트랜잭션을 개시한다. 여기서, 행선지 오프셋은 확인 응답 패킷에 포함된 오프셋 어드레스를 사용하여 설정된다.
이 점에서, 본 실시예에 따라 비동기 방송 트랜잭션에 사용되는 행선지 오프셋은 확인 응답 패킷에 포함된 오프셋 어드레스를 사용하여 설정된다. 그러나, 본 발명은 필수적으로 이것에 제한되지 않는다. 예를 들면, 제어기(300)에는 각 접속을 위해 사용되는 행선지 오프셋을 관리하는 기능을 할당할 수 있다. 다음, 접속 ID 및 행선지 오프셋이 동시에 설정되도록 구조가 배열된다. 이 경우, 제어기(300)는 각 접속에 대응하는 행선지 오프셋을 소스 노드에게 통지한다.
이어서, 소스 노드(302)는 상기 행선지 오프셋에 의해 지시된 메모리 공간에 제1비동기 방송 패킷을 기록한다(도 4a의 (406)). 접속 ID 및 월드와이드 고유 ID, 세그먼트 데이타의 시퀀스 번호가 이 패킷에 저장된다.
제1 비동기 방송 패킷을 송신한 후, 소스 노드(302)는 행선지 노드(304)로부터의 응답 패킷을 대기한다. 행선지 노드(304)로부터, 내부에 접속 ID, 월드와이드 고유 ID 및 시퀀스 번호가 저장된 응답 패킷이 비동기 방송 패킷의 형태로 송신된다. 응답 패킷을 수신한 후, 소스 노드(302)는 시퀀스 번호를 증가시키고, 다음 세그먼트 데이타를 포함하는 비동기 방송 패킷을 전송한다(도 4a의 (407)).
소스 노드(302)는 이러한 절차를 반복하여 비동기 방송 트랜잭션을 순차적으로 실행한다(도 4a의 (408, 409)). 행선지 노드(304)로부터의 응답에 대한 최대 대기 시간이 선정된다. 이러한 시간을 초과하여 어떠한 응답도 없으면, 동일 데이타가 동일 시퀀스 번호를 이용하여 다시 전송된다.
또한, 재송신을 요구하는 응답 패킷이 행선지 노드(304)로부터 전송되지 않는다면, 소스 노드(302)는 지정된 시퀀스 번호의 데이타를 다시 방송할 수 있다.
모든 오브젝트 데이타의 비동기 방송 트랜잭션의 완료 후, 소스 노드(302)는 세그먼트 종료 패킷을 방송하여 데이타 전송을 완료한다(도 4a의 (410, 411)).
여기서, 상술된 바와 같이, 소스 노드(302)는 필요에 따라 오브젝트 데이타(308)를 하나 이상의 세그먼트 데이타로 분할한다. 전술된 응답 패킷은, 비동기 방송 트랜잭션이 세그먼트 데이타의 각각에 대해 행해질 때 생성된다. 하나의 세그먼트 데이타의 전송이 비동기 방송 트랜잭션마다 실행된다. 행선지 노드(304)에는 전술된 버퍼 크기에 의해 표시된 용량을 갖는 버퍼가 제공된다.
여기서, 상술된 실시예에 따르면, 하나의 세그먼트 데이타의 비동기 방송 트랜잭션마다 응답 패킷이 송신되도록 조정이 행해진다. 그러나, 본 발명은 반드시 거기에 한정되지 않는다. 행선지 노드(304)에 제공된 데이타 버퍼가 복수의 연속적인 세그먼트 데이타로 채워진 후 행선지 노드(304)가 응답 패킷을 전송하도록 구조를 배열할 수 있다.
지금부터, 도 4a와 관련하여, 행선지 노드(304)의 동작이 상세히 설명될 것이다.
제어기(300)로부터 접속 설정 패킷을 수신한 후, 행선지 노드(304)는 소스 노드(302)로부터 송신 요청 패킷을 대기한다(도 4a에서 404).
송신 요청 패킷의 수신에 따라, 행선지 노드(304)는 이 패킷이 소스 노드(302)로부터의 것인지의 여부를 식별하기 위해 패킷상에 기록된 접속 ID 및 월드와이드 고유 ID를 확인한다.
소스 노드(302)로부터 송신 요청 패킷을 수신한 후, 행선지 노드(304)의 각각은 접속 ID 및 월드와이드 고유 ID, 확보될 수 있는 내부 버퍼의 크기 및 그 위에 특정 메모리 공간을 지정하는 오프셋 어드레스를 갖는 확인 응답 패킷을 방송한다(도 4a에서 405).
소스 노드(302)로부터 전송된 비동기식 방송 패킷을 메모리 공간상에 기록한 후, 행선지 노드(302)는 패킷의 접속 ID 및 월드와이드 고유 ID를 확인한다. 그 접속 ID 및 월드와이드 고유 ID가 제어기(300)에 의해 설정된 값들과 일치하면, (접속 ID, 월드와이드 고유 ID 및 수신 패킷에 포함된 시퀀스 번호를 포함한) 응답 패킷이 방송된다(도 4a에서 406 내지 409). 이 경우에, 수신 패킷에 포함된 세그먼트 데이타는 내부 버퍼상에 저장된다. 여기서, 수신 패킷에 포함된 접속 ID 및 월드와이드 고유 ID가 그 자신에 설정된 접속 ID 및 월드와이드 고유 ID와 동일하지 않으면, 행선지 노드(304)는 수신 패킷을 폐기한다.
또한, 행선지 노드(304)가 수신 패킷의 시퀀스 번호의 불일치를 검출할 때, 패킷의 전송을 다시 요청하는 응답 패킷을 송신할 수 있다. 이 경우에, 행선지 노드(304)는 소스 노드(302)에 요청된 전송이 행해지는 시퀀스 번호를 통지한다.
모든 비동기 방송 트랜잭션의 완료 이후에, 소스 노드(302)는 세그먼트 종료 패킷을 방송한다. 이 패킷이 수신될 때, 행선지 노드(304)는 데이타 전송 처리를 종료한다(도 4a에서 410).
세그먼트 종료 패킷을 수신한 후, 행선지 노드(304)는 세그먼트 종료 패킷의 정상적인 수신을 가리키는 응답 패킷을 방송한다(도 4a에서 411).
상술된 바와 같이, 본 실시예의 통신 시스템은 종래의 통신 시스템에 존재하는 문제점을 해결할 수 있다. 또한, 실시간 성능을 필요로 하지 않는 데이타 전송의 경우에, 데이타가 용이하게 고속으로 전송될 수 있다.
또한, 본 실시예에 따르면, 오브젝트 데이타의 전송 처리는, 제어기(300)가 접속을 수립했으면 제어기(300)로부터의 임의의 제어없이 소스 노드(302) 및 각 행선지 노드(304) 간에 실행된다. 이와 같이, 제어기(300)에 대한 부하가 감소된다. 따라서, 복잡한 통신 절차를 거치지 않고 보다 간단한 통신 프로토콜을 제공할 수 있다.
또한, 본 실시예에 따르면, 행선지 노드(304)가 임의의 환경하에서 각각의 비동기 방송 트랜잭션에 대한 그 응답을 복귀시키도록 구성된다. 이와 같이, 실시간 성능을 필요로 하지 않는 데이타의 전송을 신뢰성있게 수행하는 통신 프로토콜을 제공할 수 있게 된다.
보다 신뢰성있게 데이타 전송을 구현하기 위해서, 발생할 수 있는 버스 리셋 또는 임의의 다른 전송 에러로 인하여 데이타 전송이 중지될 때에도 전혀 데이타의 손실없이 신속하게 데이타 전송을 재개시할 필요가 있다. 지금부터, 도 4b와 관련하여, 본 실시예의 통신 프로토콜에 의해 규정된 재개시 절차에 대해 설명될 것이다.
예를 들면, 시퀀스 번호 i의 비동기식 방송 패킷이 수신된 후 버스 리셋이 발생하면, 노드의 각각은 전송 처리를 중지하고, IEEE 1394-1995 표준에 의해 규정된 절차에 따라 버스 초기화, 접속 구조의 인식, 노드 ID 등을 실행한다(도 4b에서 420 및 421).
버스 재구성의 완료 이후에, 행선지 노드(304)의 각각은 내부에 접속 ID, 월드와이드 고유 ID, 및 시퀀스 번호 i가 저장된 재개시 요청 패킷(재송신 요청 패킷)을 방송한다(도 4b에서 422).
비동기 방송 트랜잭션을 재개시할 수 있으면, 소스 노드(302)는 이와 같이 수신된 재송신 요청 패킷의 접속 ID, 월드와이드 고유 ID를 확인한 다음, 이들이 내부에 저장된 확인 응답 패킷을 방송한다(도 4b에서 423).
그 후, 소스 노드(302)는 재송신 요청 패킷들에 의해 요청되는 시퀀스 번호 다음에 오는 세그먼트 데이타, 즉 시퀀스 번호 (i+1)로 시작하는 세그먼트 데이타를 순차적으로 방송한다(도 4b에서 424).
전술된 절차에 따르면, 제어기(300), 소스 노드(302), 및 행선지 노드(304)는, 데이타 전송이 도중에 중지된 후에도 노드 Ids의 각각을 조사하지 않고 데이타 전송을 용이하고 신뢰성있게 재개시할 수 있다.
또한, 상술된 바와 같이, 본 실시예는, 데이타 전송이 중지될 때에도 제어기(300)의 제어 절차를 보다 간단하게 하는데 효과적이다.
지금부터, 도 5와 관련하여, 본 실시예에 의해 규정된 비동기식 방송 패킷의 구조에 대해 설명될 것이다. 비동기식 방송 패킷은, 예를 들면, 그 단위로서 1쿼드렛(4바이트 = 32비트)을 갖는 데이타 패킷이다.
먼저, 패킷 헤더(521)의 구조가 설명될 것이다.
도 5에서, 필드(501)(16비트)는 수신 당사자(즉, 행선지 노드(304))의 노드 ID를 표현하는 destination_ID를 가리킨다.
여기서, IEEE 1394-1995 표준에 따르면, 상위 10비트는 행선지 버스 ID(즉, 하나의 네트워크내의 버스를 식별하는 번호)를 나타내고, 하위 6비트는 행선지의 물리적 ID(즉, 하나의 버스내의 노드를 식별하는 번호)를 나타낸다. 여기서, 상위 10비트가 '3FFh'이면, 그 수신 당사자로서 로컬 버스에의 전송을 나타낸다. 만일 이들이 '0h' 또는 '3FFh'이면, 이는 그 수신 당사자로서 특정 버스에의 전송을 가리킨다.
또한, 하위 6비트가 '3Fh'이면, 이는 방송 패킷 전송을 나타낸다. 이들이 '0h' 내지 '3Eh'이면, 그 수신 당사자로서 특정 버스에의 전송을 나타낸다. 본 실시예의 통신 프로토콜에 따르면, 오브젝트 데이타(308)의 비동기 방송 트랜잭션을 구현하기 위해 이 필드의 값이 방송용 ID(즉, 'FFFF16')로 되는 것으로 정의되어 있다.
필드(502)(6비트)는 트랜잭션 레이블(t1) 필드를 나타내고, 트랜잭션의 각각에 대한 고유 태그로서 기능한다.
필드(503)(2비트)는 재시도(rt) 코드를 나타내고, 패킷이 재시도하는지의 여부를 지정한다.
필드(504)(4비트)는 트랜잭션 코드(tcode)를 나타낸다. tcode는 패킷의 포맷 및 실행되어야 하는 트랜잭션의 유형을 지정한다. 본 실시예에 따르면, 이 필드의 값은, 예를 들면, '00012'로 정의되고, 이 패킷의 데이타 블록(522)을 destination_offset 필드(507)에 의해 지시된 메모리 공간상에 기록하는 처리를 요청한다(즉, 기록 트랜잭션을 요청함).
필드(505)(4비트)는 우선순위(pri)를 나타내고, 우선 순위를 지정한다. 본 실시예에 따르면, 이 필드의 값은 '00002'이다.
필드(506)(16비트)는 source_ID를 나타내고, 송신측상의 노드 ID를 나타낸다(즉, 소스 노드(302)).
필드(507)(48비트)는 destination_offset를 나타내고, 행선지 노드(304)의 각각에 제공된 어드레스 공간의 하위 48비트를 공유가능하게 지정한다. 여기서, destination_offset인 경우, 모든 접속을 위한 동일한 값 또는 접속당 다른 값을 지정할 수 있다. 그러나, 복수의 접속이 비동기식 방송 패킷을 병렬로 처리할 수 있기 때문에, 서로 다른 값이 지정되면 보다 효과적이다.
필드(508)(16비트)는 data_length를 나타내고, 후술할 바와 같이 바이트 단위당 데이타 필드의 길이를 나타낸다.
필드(509)(16비트)는 extended_tcode를 나타낸다. 본 실시예에 따르면, 이 필드의 값은 '00002'로서 정의된다.
필드(510)(32비트)는 header_CRC를 나타내고, 상술된 필드(501 내지 509)에 대한 에러 검출 코드를 저장한다.
지금부터, 데이타 블록(522)의 구조가 설명될 것이다. 본 실시예에 따르면, 데이타 블록(522)은 헤더 정보(523) 및 데이타 필드(524)를 포함한다.
헤더 정보(523)는 노드들의 각각 사이의 논리적 접속 관계(즉, 상호 접속)를 식별하는 접속 ID를 포함한다. 여기서, 헤더 정보(523)의 구조는 용도 목적에 따라 다르다.
또한, 데이타 필드(524)는 가변 길이를 갖는 것이고 상술된 세그먼트 데이타를 저장한다. 여기서, 데이타 필드(524)상에 저장된 세그먼트 데이타가 쿼드렛의 배수가 아니면, '0'이 쿼드렛을 채워지지 않은 부분에 팩(pack)된다.
필드(511)(2쿼드렛, 64비트)는 제어기(300)에 할당된 월드와이드 고유 ID를 나타낸다. 이 월드와이드 고유 ID에 따라, 본 실시예의 1394 인터페이스는 소스 노드(302) 및 행선지 노드(304) 간의 접속을 설정한 제어기(300)를 식별한다. 이러한 특징으로, 월드와이드 고유 ID는 IEEE 1394-1995 표준에 근거하고, 이 ID는 노드의 각각에 고유하다.
또한, 본 실시예에 따르면, 월드와이드 고유 ID는 접속의 각각을 설정하는 제어기를 식별하는 정보로서 사용된다. 그러나, 본 발명은 반드시 이것에 한정되지 않는다. 상술된 버스 리셋 등에 의해서도 변경되지 않고 이러한 정보가 노드의 각각을 특별히 식별할 수 있다면 일부 다른 정보가 채택가능할 수 있다.
필드(512)(16비트)는 connection_ID를 나타내고, 본 실시예의 접속 ID를 저장한다. 본 실시예의 1394 인터페이스는 이 필드상에 저장된 ID에 따라 소스 노드(302) 및 하나 이상의 행선지 노드(304) 간에 설정된 접속을 식별한다. 본 실시예인 경우, 하나의 제어기가 216×(노드의 숫자)의 접속을 수립할 수 있다. 이와 같이, 접속의 각각에 의해 사용된 통신 대역의 합이 전송 경로의 최대 용량에 도달할 때까지 복수의 접속을 설정할 수 있게 된다.
또한, 본 실시예에 따르면, 1394 인터페이스는 전술된 월드와이드 고유 ID 및 접속 ID를 사용하여 임의의 소스 노드(302) 및 하나 이상의 행선지 노드(304) 간에 설정된 절대적인 접속을 식별한다. 따라서, 복수의 제어기(300)가 두개의 다른 논리적 접속 관계에 대해 동일한 접속 ID를 설정할 수 있게 된다. 즉, 제어기의 각각은 그 자체 접속을 설정하여, 다른 제어기에 의해 설정된 접속 ID를 특별히 주의하지 않고도 이를 관리할 수 있다.
필드(513)(8비트)는 protocol_type를 나타내고, 헤더 정보(523)에 따른 통신 절차를 나타낸다(즉, 통신 프로토콜의 종류). 본 실시예의 통신 프로토콜을 나타낼 때, 이 필드의 값은, 예를 들면, '0116'이 된다.
필드(514)(8 비트)는 control_flag를 나타내며, 본 실시예의 통신 프로토콜의 통신 절차를 제어하는 특정 제어 데이타를 설정한다. 본 실시예에 따르면, 이 필드의 최상위 비트는 예를 들어 resend_request 플래그가 되도록 지정된다. 그러므로, 이 필드의 최상위 비트가 '1' 값이 되면, 그것은 본 실시예의 통신 프로토콜을 기초로 재개 요청(재송신 요청)이 이루어진다는 것을 나타낸다.
필드(515)(16 비트)는 sequence_number를 나타내며, 특정 접속 ID(필드(512)로 표시된 접속 ID)에 따라 전송되어야 하는 패킷에 대한 연속값(즉, 시퀀스 번호)을 설정한다. 이러한 시퀀스 번호를 이용하여, 행선지 노드(304)는 비동기 방송 트랜잭션에 의해 처리되는 순차 세그먼트 데이타의 연속성을 모니터할 수 있다. 불일치가 발생되면, 행선지 노드(304)는 이들 시퀀스 번호에 따라 재송신을 요청할 수도 있다.
필드(516)는 reconfirmation_number를 나타낸다. 이 실시예에서, 이 필드는 resend_request 플래그가 '1'이 될 때에만 그 의미를 수행한다. 예를 들어, resend_request 플래그의 값이 '1'이면, 재송신을 요청하는 패킷의 시퀀스 번호가 이 필드로 설정된다.
필드(517)(16 비트)는 buffer_size를 나타낸다. 이 필드 상에, 행선지 노드(304)의 버퍼 크기가 설정된다.
필드(518)(48 비트)는 offset_address를 나타낸다. 이 필드 상에, 행선지 노드(304)에 제공되는 어드레스 공간의 하위 48 비트가 저장된다. 이러한 방식으로, 도 3에 도시된 바와 같이, 제1 메모리 공간(310) 내지 제n 메모리 공간(314) 중 하나가 지정된다.
필드(519)(32 비트)는 data_CRC를 나타낸다. 이 필드 상에, 상술된 header_CRC에서와 같이 헤더 정보(523)(필드 511 내지 518) 및 데이타 필드(524)를 사용하여 에러 검출 코드가 저장된다.
이제, 도 9를 참조하여, 네트워크 상에 1 및 동일한 접속 ID를 각각 설정하는 2개의 제어기에 의해 형성된 셋업에 대해 상세히 설명될 것이다. 도 9에서, 제어기(A300)에는 버스 리셋 등이 발생될 때에도 변하지 않는 노드 고유 ID(901)가 제공된다. 여기서, ID(901)는 IEEE 1394-1995 표준에 의해 규정된 월드와이드 고유 ID이다. 그 값은 예를 들어 '1'이다.
유사하게, 도 9에서, 제어기(B300')에는 제어기 노드(A300)의 경우에서와 같이 버스 리셋 등이 발생하는 경우에도 변하지 않는 노드 고유 ID(902)가 제공된다. 여기서, 이 ID(902)는 IEEE 1394-1995 표준에 의해 규정된 월드와이드 고유 ID라고 가정되지만 그 값은 예를 들어 '4'로 설정된다.
이와 같이 설정된 월드와이드 고유 ID로 인해, 각각의 제어기 A 및 B는 동일하거나 상이한 소스 노드(302)와 행선지 노드(304) 사이에 동일한 접속을 수립할 수 있다. 도 9에서, 각각의 접속 ID는 예를 들어 '0'으로 설정된다.
이에 대해, 제어기 A 및 B가 동일한 접속 ID를 설정하면, 접속 ID가 중첩되지 않도록 제어기 A 및 B 사이의 교섭을 수행할 필요가 없다.
접속의 수립을 위해, 각각의 제어기 A 및 B는 그것의 접속 ID 및 고유 ID(901)를 소스 노드(302) 및 행선지 노드(304)에게 통지한다. 그 후, 소스 노드(302) 및 행선지 노드(304)는 수립된 접속 및 제어기를 각각 식별할 수 있다.
이제, 도 10과 관련하여, 제어기에 의해 설정된 접속을 설정하고 해제하는 절차를 상세히 설명하여, 도 4a 및 4b와 관련하여 이루어진 설명을 보충한다.
(1) 먼저, 제어기(300)는 N(N≥1)개의 행선지 노드(304) 각각에 최대 페이로드 크기, 즉 각각의 행선지 노드(304)가 비동기 방송 트랜잭션마다 허용할 수 있는 max_rec size에 대해 질의하는 동시에, 그들 각각에 제어기(300)에 의해 설정된 고유 접속 ID를 통지한다. 각각의 행선지 노드(304)는 제어기(300)로부터 명령마다 max_rec size를 통지하고, 접속ID가 설정되었다는 응답을 복귀시킨다(도 10에서 단계 1001).
(2) 그 후, 제어기(300)는 제어기가 설정한 접속을 식별하는 접속 ID; 제어기(300)의 월드와이드 고유 ID; 이러한 접속에 의해 논리적으로 접속된 행선지 노드(304)의 합 N; 및 소스 노드(302)가 전송하는 비동기 방송 패킷의 페이 로드의 크기를 소스 노드(302)에 통지한다(도 10에서, 1002). 여기서, 제어기(300)에서 소스 노드(302)에 통지된 페이 로드의 크기는 각각의 행선지 노드(304)의 max_rec size 중에서 최소 max_rec이다.
소스 노드(302)는, 제어기(300)로부터의 페이 로드 크기로부터 도 5에 도시된 헤더 정보(523)의 크기(페이 로드에 설정된 고정된 데이타 크기의 헤더)를 감산한다. 그 후, 이 감산 결과가 하나의 세그먼트의 데이타 크기가 되므로, 상술된 바와 같이 오브젝트 데이타(308)를 분할한다.
이와 같이, 소스 노드(302)가 하나의 세그먼트 데이타의 크기를 계산하는 경우에 대해 설명되었지만, 제어기(300)는 그것을 계산하고 소스 노드(302)에 그 결과를 통지할 수도 있다. 그 후, 소스 노드(302)는 제어기(300)로부터 명령마다 각각의 설정을 나타내는 응답을 복귀한다.
(3) 제어기(300)는 소스 노드(302)에 의해 보유된 오브젝트 데이타들 중에서 지정된 송신을 위한 하나의 오브젝트 데이타(308)를 선택한다(도 10에서 1003). 소스 노드(302)는 소망의 오브젝트 데이타(308)의 선택을 나타내기 위해 제어기(300)에 응답을 복귀한다. 여기서, 선택된 오브젝트 데이타(308)는 정지 화상 또는 동화상일 수도 있다. 또한, 그것은 문자 데이타 또는 이진 데이타일 수도 있다.
(4) 소스 노드(302)가 제어기(300)로부터 수신된 응답에 따라 오브젝트 데이타(308)를 송신할 준비가 되었다는 것을 인식하면, 제어기(300)는 오브젝트 데이타(308)의 전송 개시를 지시하는 명령을 소스 노드(302)에 전송한다(도 10에서 1004).
(5) 소스 노드(302)가 제어기(300)로부터 트랜잭션 명령을 수신하면, 선택된 오브젝트 데이타(308)를 송신하기 시작한다(도 10에서 1005). 여기서, 오브젝트 데이타(308)는 상술된 바와 같이 하나 이상의 비동기 방송 트랜잭션에 의해 N개의 행선지 노드(304)에 전송된다.
(6) 오브젝트 데이타(302) 송신 완료후, 제어기(300)는 소스 오브젝트 데이타(308)를 해제한다(도 10에서 1006).
(7) 이 때, 제어기(300)는 다른 오브젝트 데이타의 송신 요청이 존재하는지에 대해 소스 노드(302)에 질의한다. 존재하면, 상기 단계(3) 내지 (6)이 반복된다.
(8) 모든 오브젝트 데이타 송신이 완료되면, 제어기(300)는 이미 설정된 고유 접속을 해제한다(도 10에서 1007 및 1008).
이제, 도 11과 결부하여, 하나의 제어기(300)가 하나의 소스 노드(302)와 N개의 행선지 노드(304) 사이에 하나의 접속 ID를 네트워크 상에 설정하는 구조에 대한 설명이 이루어질 것이다. 여기서, 각각의 노드들 사이의 접속을 식별하는 고유 접속 ID가 FFFFh라고 가정한다. 이 값은 다른 값일 수도 있다.
이 경우, 제어기(300)는 각각의 행선지 노드(304)에 대해 도 10에 도시된 단계 (1)를 수행하고, 그것을 N 회 반복한다.
이제, 도 12와 관련하여, 각각의 행선지 노드(304)에 동일한 크기의 수신 버퍼가 제공되고, 오브젝트 데이타(308)의 데이타 크기는 상술된 버퍼의 크기와 동일한, 도 11에 도시된 네트워크 구조를 갖는 통신 절차에 대한 설명이 이루어질 것이다. 여기서, 설명을 간략화하고자, 행선지 노드(304)의 수는 N=3이라고 가정한다. 도 12에서, 소스 노드(302)는 도 10에 도시된 절차에 따라 동일한 접속 ID와 접속된 3개의 행선지 노드가 존재한다는 것을 인식한다(도 12에서 1201).
(1) 트랜잭션 명령이 제어기(300)로부터 소스 노드(302)로 송신되면, 소스 노드(302)는 도 4a와 관련하여 기술된 절차에 따라 접속 요청 패킷을 방송한다(도 12에서 1202).
(2) 3개의 행선지 노드(304) 각각이 개별 수신 준비를 완료하면, 그 자체의 수신 버퍼 크기 및 다른 정보를 부가한 후 확인 응답 패킷을 복귀시킨다(도 12의 1203).
(3) 3개의 확인 응답 패킷 복귀를 확인한 후, 소스 노드(302)는 오브젝트 데이타(308)를 확인 응답 패킷의 수신 버퍼 크기에 기초하여 각각의 특정 페이 로드 크기로 분할하여, 각각의 행선지 노드(304)의 버퍼 크기까지 순차적으로 방송한다(도 12에서 1204).
(4) 모든 오브젝트 데이타(308)의 송신이 완료된 최종 세그먼트 데이타에 대해, 소스 노드(302)는 세그먼트의 종료를 나타내는 세그먼트 종료 플래그를 설정하고 그것을 송신한다(도 12에서 1205).
(5) 각각의 행선지 노드(304)가 세그먼트 종료 패킷을 수신하는 경우, 이 세그먼트 종료 수신 응답을 복귀하여 모든 오브젝트 데이타(308)의 수신이 종료된다(도 12의 1206).
(6) 세그먼트 종료 수신 응답이 모든 행선지 노드(304)로부터 복귀한 것을 확인한 이후에, 제어기(300) 및 소스 노드(302)는 오브젝트 데이타(308) 전송의 종료를 인식한다.
여기서, 도 12와 관련하여 설명된 오브젝트 데이타의 전송 모델은 도 7에 도시된 것과 동일한 방식으로 표현될 것이다.
이제, 도 13과 관련하여, 각각이 다른 크기의 수신 버퍼를 구비한 3개의 행선지 노드(304)를 갖는 네트워크의 통신 절차에 대해 상세하게 설명된다. 이에 대해, 설명을 간략히 하고자, 행선지 노드(304)의 수는 N=3으로 가정한다. 도 14에서, 소스 노드(302)에는 제어기(300)에 의해 동일 접속 ID와 접속된 3개의 행선지 노드가 존재한다는 것이 이미 통지되었다.
(1) 트랜잭션 명령이 제어기(300)로부터 소스 노드로 송신되면, 소스 노드(302)는 도 4a와 관련하여 기술된 절차에 따라 접속 요청 패킷을 방송한다(도 13에서 1301).
(2) 각각의 행선지 노드(304)가 개별 수신 준비를 완료하면, 그 자체의 수신 버퍼 크기 및 다른 정보를 부가한 후 확인 응답 패킷을 복귀시킨다(도 13에서 1302).
(3) 3개의 확인 응답 패킷의 복귀를 확인한 후, 소스 노드(302)는 오브젝트 데이타(308)를 확인 응답 패킷의 수신 버퍼 크기에 기초하여 각각의 특정 페이 로드 크기로 분할하여, 세개의 행선지 노드(304)의 최소 수신 버퍼까지 순차적으로 방송한다. 그 후, 소스 노드는 최소 버퍼를 가지는 행선지 노드(304)로부터의 수신 응답 패킷을 대기한다(도 13에서 1303).
(4) 최소 수신 버퍼를 갖는 행선지 노드(304)(도 13에서 행선지 #1)로부터 수신 응답 패킷을 수신한 후, 소스 노드(302)는 다음의 보다 큰 수신 버퍼 크기까지 순차적으로 연속적으로 방송하고, 다음의 행선지 노드(304)로부터 수신 응답 패킷을 대기한다(도 13에서 1304).
(5) 제2 행선지 노드(304)로부터 수신 응답 패킷을 수신한 후, 소스 노드(302)는 다음의 보다 큰 수신 버퍼 크기까지 순차적으로 연속적으로 방송하고, 다음의 행선지 노드로부터 수신 응답 패킷을 대기한다(도 13의 1305).
(6) 상술된 절차가 반복됨에 따라, 소스 노드(302)는 그를 위해 설정된 세그먼트 종료 플래그를 갖는 최종 세그먼트 데이타를 방송하고, 각각의 행선지 노드(304)로부터 세그먼트 종료 응답의 수신을 대기한다(도 13에서 1306).
(7) 모든 행선지 노드(304)로부터 세그먼트 종료 수신 응답이 복귀되었다는 것을 확인한 후, 제어기(300) 및 소스 노드(302)는 오브젝트 데이타(308)의 전송 완료를 인식한다(도 13에서 1307).
이제, 도 14와 관련하여 도 13에 도시된 오브젝트 데이타의 전송 모델에 대해 설명될 것이다. 이에 대해, 설명을 간략화하고자, 행선지 노드(304)의 수는 N=2로 가정한다. 또한, 도 15a 및 도 15b에서, 소스 노드(302)의 오브젝트 데이타(308)는 정지 화상이며 그 크기는 128 Kbyte라고 가정한다. 그러나, 본 발명은 그것에 한정될 필요는 없다. 또한, 오브젝트 데이타(308)는 정지 화상에 한정될 필요 없이, 동화상, 텍스트, 이진 데이타 등일 수도 있다.
소스 노드(302)는 하나의 비동기 방송 패킷의 페이로드 크기를 256바이트로 정의하며, 앞서 언급한 오브젝트 데이타(308)을 500으로 세그먼트화한다. 그 다음, 세그먼트화된 각각의 데이타를 행선지 #1의 버퍼 크기까지 순차적으로 방송한다. 행선지 #1은 자신의 수신 버퍼가 완전히 채워진 후에 수신 응답 패킷을 변환한다. 소스 노드(302)는 행선지 #2의 수신 버퍼가 완전히 채워질 때까지 계속해서 순차적으로 방송한다.
여기서, 행선지 #2의 버퍼 크기는 행선지#1의 버퍼 크기의 2배이다. 그러나, 본 발명은 반드시 여기에 제한될 필요는 없다. 상술한 바와 같이, 도 15a 및 도 15b에서 행선지 #1은 총 3개의 송신 수신 응답을 변환한다. 그 다음, 결국 행선지 #2는 2개의 송신 수신 응답을 변환한다.
(제2 실시예)
제1 실시예에서와 같이, 제어기(300)에 의해 설정된 소스 노드(302)와 행선지 노드(304)간의 접속을 식별하는 데이타를 사용하여 소스 노드(302)와 행선지 노드(304)간의 데이타 전송을 구현하는 통신 프로토콜에 관한 제2 실시예에 대한 설명이 이루어질 것이다.
또한, 제2 실시예의 경우, 복수개의 행선지 노드(304)가 각각이 서로 다른 크기를 갖는 수신 버퍼가 제공될 때조차도 행선지 노드(304)들 각각의 수신 버퍼의 크기에 관계없이 신뢰성있고 효율적으로 데이타 전송을 구현하는 통신 프로토콜에 관한 설명이 이루어질 것이다.
이후부터, 첨부된 도면과 관련하여, 본 발명의 제2 실시예에 따른 통신 프로토콜이 기술될 것이다. 이 점에서, 제2 실시예의 통신 프로토콜의 기본적 구조는 제1 실시예와 동일한 것으로 간주한다. 따라서, 그 설명은 생략될 것이다.
이제, 제2 실시예에 사용되는 통신 패킷이 도 15a 및 도 15b를 이용하여 기술될 것이다. 여기서 사용된 통신 패킷은, 예를 들어, 그 기본 단위로 4바이트를 갖는 패킷이다. 이 통신 패킷은 2종류의 포멧, 즉, 행선지측에서의 노드 ID를 가리키는 유형의 패킷(즉, 비동기 패킷), 및 채널 번호가 지정되어 방송되는 유형의 패킷(소위 비동기 스트림)을 가진다. 이 실시예에 따르면, 오브젝트 데이타(308)를 전송하기 위한 패킷으로서 어느 한 포맷을 선택하는 것이 가능하다.
도 15a에 도시된 패킷 포맷은 노드 ID를 가리키는 유형이다.
16비트인 제1 필드(1501)은 destination_ID 필드이며, 수신측상의 노드 ID를 가리킨다.
그 다음 6비트 필드(1502)는 트랜잭션 레이블(tl) 필드로서 각각의 트랜잭션에 고유하게 부여되는 태그이다.
그 다음 2비트 필드(1503)은 재시도 코드(retrial code)로서 재시도 요청의 유무를 가리키는 패킷이다.
그 다음 4비트 필드(1504)는 트랜잭션 코드(tcode)로서, 패킷의 포맷 및 실행되어야 할 트랜잭션의 유형을 가리킨다.
본 실시예에서, 이 필드의 값은, 예를 들어, 00012인 것으로 가정한다. 그 다음, 이 트랜잭션은 그에 따라 데이타 블럭을 기록해야 한다.
그 다음 4비트 필드(1505)는 우선순위 필드(pri)로서 우선순위를 가리키고, 본 실시예에서 이 필드의 값은 00002로 정의된다.
그 다음 16비트 필드(1506)은 source_ID로서, 송신측상의 노드 ID를 가리킨다. 그 다음 48비트 필드(1507)은 행선지 오프셋 필드로서 행선지 노드(304)에 의해 보유된 64비트의 어드레스 공간 내의 하위 48비트를 가리킨다.
그 다음 16비트 필드(1508)은 data_length 필드로서 이후에 기술되는 데이타 필드의 길이를 바이트 단위로 가리킨다.
그 다음 16비트 필드(1509)는 extended_tcode 필드이다. 이 필드의 값은, 트랜잭션이 본 실시예에서 사용되는 데이타 블럭을 기입하도록 요구받을 때, 000016이다.
그 다음 32비트 필드(1510)은 header_CRC 필드로서, 패킷 헤더의 에러 검출을 위해 사용된다. 여기서, 패킷 헤더는 필드(1501 내지 1509)에 의해 형성된다.
그 다음 필드(1511)은 가변 길이 데이타 필드이다. 이 필드는 페이로드라 불린다. 본 실시예에 따르면, 이 필드가 쿼드릿의 배수(multiple of quadlet)가 아니라면, 쿼드릿으로 채워지지 않은 비트들은 0으로 패킹된다.
그 다음 32비트 필드(1512)는 data_CRC 필드이다. 상기 header_CRC 필드에서와 같이, 이 필드는 그 에러 검출을 위해 사용된다.
도 15b에 도시된 패킷 포맷은 채널 번호를 지정하는 유형의 패킷이다.(즉, 비동기 스트림 패킷)
16비트인 제1 필드(1520)은 이후에 기술되는 데이타 파일의 길이를 바이트 단위로 가리키는 data_length 필드이다.
그 다음 2비트 필드(1521)은 태그 필드로서, 그 값은 002이다.
그 다음 6비트 필드(1522)는 이 패킷의 채널 번호를 가리키는 채널 필드이다. 수신 노드는 이 채널 번호를 사용하여 패킷을 식별한다.
그 다음 4비트 필드(1523)은 트랜잭션 코드(tcode)이다. 이것은 비동기 스트림의 경우 A16이다.
그 다음 4비트 필드(1524)는 동기화 코드(sy)이다. 그 값은 이 패킷을 사용하는 적용에 의해 결정된다.
그 다음 32비트 필드(1525)는 header_CRC 필드이다. 상기 data_length 필드에서 sy 필드까지를 패킷 헤더라 부른다. 이 필드는 헤더 패킷의 에러 검출을 위해 사용된다.
그 다음 필드(1526)은 가변 길이 데이타 필드이다. 이 데이타 필드는 페이 로드라 불린다. 본 실시예에 따르면, 이 데이타 필드가 쿼드릿의 배수가 아니면, 쿼드릿으로 채워지지 않은 비트들은 0으로 패킹된다.
그 다음 32비트 필드(1527)은 data_CRC 필드이다. 상기 header_CRC 필드에서와 같이, 이것은 데이타 필드의 에러 검출을 위해 사용된다.
이제, 도 16와 관련하여, 상술한 제어기(300), 소스 노드(302), 및 행선지 노드(304)간의 비동기 트랜잭션에 관한 설명이 이루어질 것이다. 본 실시예에서는, 하나의 소스 노드와 하나의 행선지 노드간에 접속이 이루어지는 경우에 대해 설명될 것이다.
제어기(300)는 사용에 의해 선택된 행선지 노드(304)로 접속을 설정하기 위한 SET DESTINATION 명령 패킷을 전송한다.(도 16의 1601) 이 패킷에는, 제어기(300)의 ROM 상이 기록된 node_vendor_id, chip_id_hi, chip_id_lo, 및 이 접속에 할당된 connection_ID가 기입된다.
각 노드마다 보유된 node_vendor_id, chip_id_hi, chip_id_lo를 결합된 64비트 데이타는 이와 같은 노드에 고유한 월드와이드 고유 ID 또는 EUI-64(확장된 고유 식별자, 64비트)라 불리운다. 따라서, 하나의 통신 시스템에서 동일한 EUI-64를 갖는 다른 노드는 없다. 본 실시예에 따르면, 각각의 접속은 EUI-64 및 connection_ID의 결합에 의해 식별된다. 이후부터, 접속을 식별하기 위해 사용되는 데이타는 접속 식별자 데이타라 불릴 것이다.
버스 상에 복수개의 제어기(300)가 존재하는 때조차도, 각각의 제어기에 대해 EUI-64 및 connection_ID의 조합을 사용하여 접속을 식별한다. 따라서, 각각의 제어기(300)은 자신에게 할당된 connection_ID를 관리함으로써 버스 상에서 고유하게 설정된 접속을 관리할 수 있다.
이하에서는, 도 17을 참조하여, 본 발명의 제2 실시예에 대해 사용되는 명령 패킷 포맷의 예에 대해 설명한다. 여기에서 나타낸 포맷의 명령은 도 15a에서 데이타 필드(1511)에 설정되어 지정 노드로 송신된다.
도 17에서, ctype 필드는 명령의 종류를 나타내는 것으로, 표 1에 나타낸 명령 형태를 나타낸다. 상술한 SET DESTINATION 명령의 경우, Control이 지정된다. subunit_type, subunit_ID 필드는 지정된 노드의 특정 서브유닛에 대한 명령을 나타내는 것이다. 오피코드, 오퍼랜드 필드는 실제 명령의 내용을 지정하는 것이다.
명령 타입 의미
0 Control 제어 명령
1 Status 장치의 상태에 대한 질의
2 Inquiry 명령에 대한 지원 상태에 대한 질의
3 Notify 장치의 상태 변경 확인
도 18은 상기 SET DESTINATION 명령 패킷에 사용된 오피코드 및 오퍼랜드의 예를 나타낸다. 오피코드 필드의 경우, 패킷이 행선지 노드(304)와의 접속을 설정하기 위한 것임을 나타내기 위한 코드가 제공된다.
오퍼랜드[0] 내지 오퍼랜드[2], 오퍼랜드[3], 오퍼랜드[4] 내지 오퍼랜드[7]의 필드의 경우, 제어기(300)의 ROM에 기록된 node_vendor_id, chip-id_hi, chip_id_lo의 데이타가 각각 설정된다. 오퍼랜드[8]의 경우, 제어기(300)에 의해 관리되는 connection_ID의 값이 설정된다. 이 패킷이 제어기(300)로부터 행선지 노드(304)에 송신되면, 더미 데이타가 나머지 오퍼랜드 필드에 대해 설정된다.
상기 SET DESTINATION 명령 패킷을 수신한 행선지 노드는 SET DESTINATION 명령 패킷을 제어기(300)에 송신한다(도 16에서 1602).
도 19는 이 응답 패킷 포맷의 예를 나타낸다. 여기에서 나타낸 포맷의 응답은 도 15a에서 나타낸 데이타 필드(1511)에 설정되어, 지정된 노드에 송신된다.
도 19에서, 응답 필드는 응답의 종류를 나타내는 것으로, 표 2에서 나타낸 응답의 형태를 지정한다. subunit_type, subunit_ID 필드는 지정 노드의 특정 서브유닛에 대한 명령을 나타내는 것이다. 오피코드, 오퍼랜드 필드는 실제 명령의 내용을 지정하는 것이다.
응답 유형 의미
8 Not implemneted 명령이 지원되지 않음
9 Accepted 명령이 수용됨
A16 Rejected 명령이 거절됨
F16 Interim 응답이 후에 반환됨
제2 실시예에서는, 행선지 노드(304)가 비동기 방송 트랜잭션의 접속을 설정할 수 있으면, Interim이 응답 필드에 설정된다(이와 같이, 소스 노드(302)와의 비동기 방송 트랜잭션이 완료되면 행선지 노드(304)는 'Accepted'을 나타내는 응답을 다시 제어기(300)에 송신한다고 가정함). 이것이 불가능하면, 'Rejected'이 설정된다. 오피코드와 오퍼랜드 필드는 도 18에서 나타낸 포맷으로 되어 있으며, SET DESTINATION 응답 패킷을 나타내는 코드가 오피코드에 설정된다. node_vender_id, chip_id_hi, chip_id_lo 및 connection_id 필드의 경우, 제어기(300)에 의해 지정된 값이 설정된다.
이하, 접속이 설정될 수 있으면, 행선지 노드(304)는 max_rec 필드에 행선지 노드의 max_rec 값 (즉, 비동기 방송 트랜잭션 마다 수신 가능한 데이타의 크기를 나타내는 값)을 설정하고, buffer_size 필드에 오브젝트 데이타(308)의 수신에 사용할 수 있는 수신 버퍼의 크기를 설정한다.
또한, 접속이 설정될 수 없으면, 제어기(300)로부터의 제어 명령 패킷에 대해 설정된 더미 데이타와 동일한 데이타가 max_rec 및 buffer_size 필드에 설정된다. 이 status_info 필드에는, 명령의 실행 상태가 설정된다. 표 3은 SET DESTINATION 응답 패킷의 status_info 필드의 값의 예를 나타낸다. 접속이 설정될 수 있으면, 'Success'이 표시된다. 이것이 불가능하면, 'Busy'이 표시된다.
의미
016 Success
116 Aborted
1116 Busy
1216 Serial Bus Error
1316 Hardware trouble
다음에, 도 16에서는 행선지 노드(304)로부터 Interim SET DESTINATION 응답 패킷을 수신한 제어기(300)는 사용자에 의해 선택된 소스 노드(302)의 접속을 설정하기 위해서 SET SOURCE 명령 패킷을 송신한다(도 16의 1603에서).
이 패킷에는, 상기 행선지 노드(304)에 대해 설정된 node_vendor_id, chip_id_hi, chip_id_lo, 및 connention_id가 기록된다. 이 명령 패킷의 포맷은 또한 도 17에서 나타낸 바와 같이 구성될 수 있으며, Control이 ctype 필드에 설정된다. 또한, 상기 포맷의 명령은 도 15a에서 나타낸 데이타 필드(1511)에 설정되어, 지정 노드에 송신된다.
도 20은 상기 SET SOURCE 명령 패킷에 저장된 데이타의 일 예를 나타낸다. 오피코드 필드에서는, 소스 노드(302)에 대한 접속을 설정하기 위한 패킷을 나타내는 코드가 설정되어 있다.
오퍼랜드[0] 내지 오퍼랜드[2], 오퍼랜드[3], 오퍼랜드[4] 내지 오퍼랜드[7], 및 오퍼랜드[8]의 필드에는, 행선지 노드(304)에 대해 설정된 node_vendor_id, chip-id_hi, chip_id_lo 및 connection_id의 데이타가 설정되어 있다.
오퍼랜드[9]의 max-rec 및 오퍼랜드[10] 내지 오퍼랜드[12]의 buffer_size에는, 행선지 노드(304)로부터의 SET DESTINATION 응답 패킷에 대해 설정된 max_rec 및 buffer_side의 데이타가 설정되어 있다. 오퍼랜드[13]의 number_of_destinations 필드에는 행선지 노드의 갯수가 설정된다.
이하에서는, 예를 들어 도 16에서 나타낸 플로우에서는 트랜잭션이 일 대 일이고, 이 경우 1이 설정된다. 오퍼랜드[14]의 status_info에 대해 더미 데이타가 설정된다.
이와 같은 SET Source 명령 패킷을 수신한 소스 노드(302)는 제어기(300)에 SET SOURCE 응답 패킷을 송신한다(도 16의 1604). 도 19는 SET SOURCE 응답 패킷의 포맷을 나타낸다. 상기 포맷의 패킷은 도 15a의 데이타 필드(1511)에 설정되어, 지정 노드에 송신된다.
제2 실시예에 따르면, 소스 노드(302)가 비동기 방송 트랜잭션에 대한 접속을 설정할 수 있으면, 'Accepted'이 응답 필드에 설정된다. 설정할 수 없다면, 'Rejected'이 설정된다. 오피코드와 오퍼랜드 필드에는, 도 20에서 나타낸 데이타가 저장된다. 오피코드에는, SET SOURCE 응답 패킷을 나타내는 코드가 설정되고, node_vendor_id, chip-id_hi, chip_id_lo 및 connection_id 필드에는 제어기(300)에 의해 지정된 데이타가 설정된다.
접속이 동기 방송 트랜잭션에 대해 설정될 수 있으면, 소스 노드(302)는 SET SOURCE 패킷으로부터 접속 식별자 데이타를 훼치하여 이를 내부 버퍼에 저장한다. 또한, max_rec 및 buffer_size 필드에는, SET SOURCE 명령 패킷에 설정되어 있는 데이타가 설정되어 있다.
본 실시예의 소스 노드(302)가 복수의 행선지 노드(304)와의 접속을 설정할 수 있어도, 접속될 수 있는 행선지 노드의 갯수는 비동기 수신 등의 사용을 위해 행선지 노드(304) 각각에 대해 제공된 버퍼의 크기로 인해서 제한되게 된다. 따라서, 소스 노드(302)는 SET SOURCE 명령 패킷의 number_of_destination 필드의 값을 조사하여, 이 값이 접속이 가능한 값보다 작으면 이 값을 SET SOURCE 응답 패킷의 number_of_destinations 필드에 설정한다. 조사된 값이 이 값을 초과하면, 접속될 수 있는 노드의 갯수만이 실행 가능값으로 설정된다.
status_info 필드에는, 실제의 명령 실행 상태가 설정된다. 표 4는 SET SOURCE 응답 패킷의 status_info 필드의 값의 예를 나타낸다. 접속이 설정될 수 있으면, 행선지 노드의 갯수가 접속될 수 있는 노드의 갯수보다 작은 경우 'Success'가 표시된다. 만일 접속될 수 있는 노드의 갯수를 초과하면, 'Too many destinations'가 설정된다. 접속이 설정될 수 없으면, 'Busy'가 설정된다.
의미
0016 Success
0216 Too many destinations
1116 Busy
1216 Serial Bus Error
1316 Hardware trouble
도 16에서, 소스 노드(302)로부터 Accepted SET SOURCE 응답 패킷을 수신한 후에, 제어기(300)가 SET SOURCE 응답 패킷의 status_info 필드를 조사하고, 'Success'를 확인한 경우 OBJECT SEND 명령 패킷을 소스 노드(302)에 송신한다(도 16의 1605에서).
이와 관련하여, 소스 노드(302)가 송신해야 하는 오브젝트 데이타(308)가 어떤 수단(본 실시예에서는 도시 안됨)에 의해 이미 선택되어 있거나, 예를 들어 OBJECT SEND 명령 패킷에 의해 선택될 수 있다고 가정한다. 이 패킷에는, 상술한 소스 노드(302)에 대해 설정된 node_vendor_id, chip-id_hi, chip_id_lo 및 connection_id가 기록되어 있다.
이 명령 패킷의 포맷은 또한 도 17에서와 같이 형성되고, Control은 ctype 필드에 설정된다. 또한, 상기 포맷의 데이타는 도 15a의 데이타 필드(1511)에 설정되어, 지정 노드에 송신된다.
도 21은 상술한 OBJECT SEND 명령 패킷에 저장된 데이타의 일예를 나타낸다. 오피코드 필드에는, 코드가 소스 노드(302)에 대해 선택된 오브젝트 데이타의 송신의 개시를 지시하도록 설정된다.
오퍼랜드[0] 내지 오퍼랜드[2], 오퍼랜드[3], 오퍼랜드[4] 내지 오퍼랜드[7], 오퍼랜드[8]의 필드에는, 소스 노드(302)에 대해 설정된 node_vendor_id, chip-id_hi, chip_id_lo 및 connection_id의 데이타 즉, 제어기(300)의 EUI-6432가 설정되어 있다. 오퍼랜드[9]의 서브 함수 필드에는, 이 명령 패킷에 의해 지시된 실제 동작을 가르키는 코드가 설정된다. 이 코드의 한 실시예가 표 5에 도시된다. 오브젝트 데이타(308)의 전송 개시가 지정되면, 송신이 설정된다. 또한 더미 데이타는 오퍼랜드[10]의 status_info에 설정된다.
서브 함수 동 작
송신 0016 정상 동작을 수행
중지 0216 '중지 명령' 동작을 수행
OBJECT SEND 명령 패킷을 수신한 소스 노드(302)는 OBJECT SEND 응답 패킷을 제어기(300)에 송신한다(300; 도 16의 1607에서). OBJECT SEND 응답 패킷의 포맷은 도 19와 같이 형성된다. 또한, 상기 포맷의 응답 패킷은 도 15a의 데이타 필드(1511)에 설정되고, 지정된 제어기(300)에 송신된다.
소스 노드(302)는 OBJECT SEND 명령 패킷에 대해 설정된 접속을 조사한다. 접속이 자신에 대해 설정된 접속과 일치하고 오브젝트 데이타(308)의 송신 개시가 가능하면, 응답 필드에 Interim이 설정된다(이와 같이, 비동기 방송 트랜잭션이 행선지 노드(304)로 완료되면, 소스 노드(302)는 'Accepted'를 가르키는 응답을 제어기(300)에 재차 송신한다고 가정한다). 그렇치 않으면, 'Rejected'가 설정된다.
오피코드 및 오퍼랜드 필드에, 도 21에 도시한 데이타가 저장된다. 오피코드에서, OBJECT SEND 응답 패킷을 가르키는 코드가 설정된다. node_vender_id, chip_id_hi, chip_id_lo, connection_id 및 주제의 필드에, 제어기(300)에 의해 OBJECT SEND 응답 패킷내에서 설정되었던 데이타가 설정된다.
status_info 필드에는, 명령의 실행 상태가 설정된다. 표 6은 OBJECT SEND 응답 패킷의 status_info 필드 값의 예를 도시한다. 오브젝트 데이타(308)의 전송이 가능하면, 'Success'가 설정된다. 그렇지 않으면, 데이타는 송신의 개시를 불가능하게 하는 이유에 대응하여 설정된다.
의미
0016 Success
0116 Aborted
1116 Busy
1216 Serial Bus Error
1316 Hardware trouble
1416 Unkow connection id
상기 기술한 것과 같이, 도 16에 도시된 절차(1601 내지 1606)의 실행으로, 논리적 접속 관계, 즉 제어기(300), 행선지 노드(304), 및 소스 노드(302)간의 상호 접속을 설정하는 것이 가능하다. 그 후, 이러한 접속을 이용하여, 오브젝트 데이타(308)에 대해 비동기 방송 트랜잭션이 시작된다.
SET DESTINATION, SET SOURCE, 및 OBJECT SEND 패킷의 각각은 수신 노드의 이용을 위해 도 15a내의 destination_ID 필드에 노드 ID가 각각 지정된 패킷을 이용한다. 그리고나서, 각 노드로부터 송신이 이루어진다.
제어기(300)는 자신에게 설정된 접속에 이용되는 connection_id를 관리하는 connection_id 관리용 표를 구비하고 있다. 예를 들면, 도 22에 도시된 것과 같이, connection_id, max_rec, 및 buffer_size에 대응하는 플래그 레지스터를 저장하는 버퍼를 구비하고 있고, 현재 이용중인 비트가 이용중인 connection_id플래그상에 설정된다. 그러므로, max_rec 및 buffer_size의 값이 보유된다. 제어기(300)는 이 플래그 레지스터를 조사하고, 그리고나서 복수의 접속을 한꺼번에 설정하기 위해 이용하지 않는 connection_id를 할당한다.
지금부터는 소스 노드(302)와 행선지 노드(304)간에 실행되는 오브젝트 데이타(308)의 트랜잭션이 설명될 것이다.
도 23에 도시된 것과 같이, 소스 노드(302)는 예를 들면, 128Kbyte의 정지 화상을 전송될 오브젝트 데이타로 선택하고, 각 행선지 노드(304)는 32Kbyte의 데이타의 수신용 버퍼를 가지고 있는 것으로 가정한다. 또한 각 행선지 노드(304)는 트랜잭션당 512 바이트, 즉 max_rec = 512 바이트의 비동기 패킷을 수신할 수 있다고 가정한다.
이 경우에, 행선지 노드(304)는 max_rec에 512 바이트를, 32K 바이트의 데이타를 상기 기술한 SET DESTINATION 내의 buffer_size 필드내에 설정함으로써 제어기(300)에 응답을 송신한다. 제어기(300)는 SET SOURCE 명령을 이용하여 이와 같은 데이타를 소스 노드(302)에 통지한다.
소스 노드(302)는 선택된 오브젝트 데이타(308)를 세그먼트 데이타의 갯수가 max_rec의 값을 초과하지 않는 세그먼트 데이타로 세그먼트한다(본 실시예에 따르면, 하나의 세그먼트 데이타는 256 바이트를 가지고 있는 것으로 가정함). 그리고 나서, 각 세그먼트는 행선지 노드(308)에 순차적으로 전송된다. 도 23에서, 오브젝트 데이타(308)는 각각 동일 크기로 세그먼트된다.
도 16에 표시된 플로우에 도시된 것과 같이, 소스 노드(302)는 세그먼트 단위마다 오브젝트 데이타(308)를 순차적으로 전송한다. 여기에서, 비동기 방송 트랜잭션은 도 15a 및 도 15b에 도시된 포맷의 패킷을 각각 이용한다. 도 15a에 도시된 비동기 방송 패킷이 이용된 경우, 방송 또는 멀티캐스트용 ID가 특정 행선지 노드를 가르키는 노드 ID가 아닌, destination_id 필드(1501)에 설정된다.
본 실시예에 따르면, 방송 ID를 'FFFF16', 멀티캐스트 ID를 'FFDF16'으로 하였지만, 그들 중 어느 하나를 destination_id 필드(1501)에 설정한 패킷을 오브젝트 데이타(308)의 전송에 이용한다.
또한, 도 15b에 도시된 포맷의 비동기 스트림 패킷이 이용된 경우, 특정 노드에 의해 관리되는 채널 번호는 특정 행선지 노드(304)를 가르키는 노드 ID가 아닌 채널 필드(1522)에 설정된다. 이러한 경우에, 오브젝트 데이타(308)가 전송되기 전에, 제어기(300)는 소스 노드(302) 및 행선지 노드(304)에게 전술한 채널수를 통지한다. 소스 노드(302) 및 행선지 노드(304)는 오브젝트 데이타(308)의 전송을 위해 내부에 설정된 이 채널 번호를 가지는 패킷을 이용한다.
이후에, 도 15a에 도시된 패킷 포맷을 이용하는 예에 대한 설명이 이루어진다.
도 24는 세그먼트된 오브젝트 데이타(308)의 송신 패킷 포맷의 예를 도시하고 있다. 이러한 포맷의 데이타는 도 15a에 도시된 데이타 필드(1511)에 설정되어 소스 노드(302)로부터 송신된다.
도 24에서, 제어기(300)에 의해 설정된 접속을 식별하는 데이타가 node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id의 필드에 설정된다. control_flag 필드에는 이러한 데이타 패킷의 형태를 나타내는 정보가 설정된다. 표 7은 소스 노드(302)에 설정된 control_flag 필드의 값의 예를 도시한다.
의 미
0016 Normal data
0116 Buffer end
0216 Object end
sequence_number 필드에, 이 패킷에 의해 송신된 세그먼트 데이타의 실행수가 설정된다. 세그먼트된 오브젝트 데이타의 부분에 세그먼트된 오브젝트 데이타의 한 세그먼트 데이타가 설정된다. 또한, 도 15b에 도시된 패킷이 이용된 경우, 도 24에 도시된 포맷의 데이타가 마찬가지로 데이타 필드(1526)에 설정된다.
우선, 소스 노드(302)의 동작이 기술될 것이다.
소스 노드(302)는 송신된 세그먼트 데이타의 전체 크기를 카운트하고, SET SOURCE 명령을 이용하여 제어기(300)에 의해 통지된 행선지 노드(304)의 버퍼 크기까지 세그먼트 데이타를 순차적으로 전송한다(도 16의 1607).
이러한 경우에, Normal data가 control_flag 필드에 설정된다. 송신 데이타의 전체 크기가 행선지 노드(304)의 버퍼 크기를 초과하지 않는 적절한 크기에 도달한 경우, Buffer end를 패킷의 control_flag 필드에 설정한 후 데이타가 송신된다(도 16의 1608에서).
도 23에 도시된 예에 대해서, 세그먼트의 전체 크기가 행선지 노드(304)의 버퍼 크기와 동일하게 된 세그먼트(시퀀스 수 127)를 송신한 경우 control_flag가 buffer_end에 설정된다. 그 후, 소스 노드(302)는 행선지 노드(304)로부터 송신될 수신 응답 패킷을 대기한다(도 16의 1609).
도 25는 수신 응답 패킷의 포맷예를 도시한다. 이 포맷의 데이타는 도 15a에 도시된 데이타 필드(1511)에 설정되고 행선지 노드(304)로부터 송신된다.
도 25에서, 제어기(300)에 의해 설정된 접속을 식별하는 데이타가 node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id의 필드에 설정된다. control_flag 필드에, 이 데이타 패킷의 형태를 가르키는 정보가 설정된다. 표 8은 행선지 노드(304)에 설정된 control_flag 필드의 값을 도시한다.
의미
1016 Receive success
1116 Resend request
control_flag 값이 'Receive success'인 경우, 정확하게 수신된 데이타의 시퀀스 수가 설정된다. 'Resend request'가 나타나면, 제송신에 요구된 데이타의 시퀀스 수가 설정된다.
소스 노드(302)는 내부의 destination_id에 설정된 멀티캐스트 ID를 가지는 비동기 패킷을 수신하고, 페이로드내의 접속 식별자 데이타를 조사한다. 자신의 노드에 설정된 데이타와 일치하면, control_flag의 값이 조사된다. 이 값이 'Receive success'이면, 송신된 세그먼트 데이타의 전체 카운트는 클리어된다. 그리고나서, 데이타 송신이 이하의 세그먼트에 대해 개시된다(도 16의 1610).
도 23에 도시된 예에서, 시퀀스수가 255,383인 세그먼트 데이타가 송신되면, control_flag가 buffer_end에 설정된다. 마찬가지로, 행선지 노드(304)로부터 응답을 수신한 후에 데이타 송신이 재개된다.
오브젝트 데이타(308)의 마지막 데이타가 송신되면, 소스 노드(302)는 오브젝트 데이타 종료에 control_flag를 설정하고 데이타를 송신한다(도 16의 1611). 버퍼 종료와 같이, 소스 노드(302)는 마찬가지로 수신 응답을 대기한다. 행선지 노드(304)로부터의 수신 응답의 control_flag가 'Receive success'이면, OBJECT SEND 응답이 제어기(300)에 송신된다(도 16의 1614).
이 비동기 패킷은 제어기(300)에 의해 destination_id에 설정된 노드 ID와 함께 송신된다. 도 19에 도시된 응답 필드에는 'Accepted'가 설정되고, 도 19에 도시된 오피코드와 오퍼랜드[0] 내지 오퍼랜드[9]에는, OBJECT SEND 명령의 수신직후 제어기(300)에 송신된 Interim OBJECT SEND 응답에서와 같이 동일한 데이타가 설정된다.
오퍼랜드[10]의 status_info 필드에는, 데이타 송신의 종료 상태를 가르키는 코드가 설정된다. 이것이 정상적으로 종료되면, 'Success'가 설정된다. 이제, 각 행선지 노드(304)의 동작이 기술될 것이다.
행선지 노드(308)가 내부의 destination_id 필드에 설정된 멀티캐스트 ID를 가지고 있는 비동기 패킷을 수신하면, 데이타 필드내의 접속을 식별하는 데이타를 조사하고, 그 데이타가 자신의 데이타와 일치하면, 수신 버퍼의 헤더 어드레스로 시작하여 세그먼트 데이타를 순차적으로 기입하기 시작한다. 또한, 이러한 접속에서, 시퀀스 수 필드를 조사함으로써 잃어버린 데이타를 검출하는 것이 가능하다.
데이타 패킷의 control_flags를 조사함으로써, 그 값이 Normal 데이타를 나타내면 다음 데이타 패킷의 전송이 대기된다. 만일 control_flags의 값이 버퍼 종료를 나타내면, 수신 버퍼에 기록된 데이타가 다른 버퍼(하드 디스크 등)에 복사된 다음, 버퍼가 클리어된다. 그 후, 도 25에 도시된 포맷의 응답 패킷이 멀티캐스트 ID를 이용하여 전송된다(도 16의 1609).
이때, control_flags에 'Receive Success'가 설정되고, 버퍼 종료가 내부에 설정된 데이타 패킷의 시퀀스수가 설정된다. 도 23에 도시된 예에서, 127이 설정된다.
수신 응답의 전송 후에, 행선지 노드(304)는 소스 노드(302)로부터의 데이타 전송의 재개를 대기하고, 수신 버퍼의 헤더를 시작으로 다시 순차적으로 세그먼트 데이타를 기록한다(도 16의 1610). 도 23에 도시된 예에서, 시퀀스수가 255,383인 세그먼트 데이타가 수신되면, 마찬가지로 수신 응답이 전송된다.
control_flags의 값이 오브젝트 종료인 세그먼트 데이타가 수신되면, 행선지 노드(304)는 마찬가지로 수신 응답을 전송한다(도 16의 1612에서). 멀티캐스트 ID를 이용하여 오브젝트 종료에 대한 수신 응답을 전송한 후에, 행선지 노드(304)는 제어기(300)에 SET DESTINATION 응답 패킷을 전송한다(도 16의 1613에서).
이 SET DESTINATION 응답 패킷의 destination_id 필드(1501)에 제어기(300)의 노드 ID를 설정하여 전송이 이루어진다. 이 패킷의 응답 필드에서, 'Accepted'가 설정되고, 오피코드 및 오퍼랜드[0] 내지 오퍼랜드[12]에는, SET DESTINATION 명령의 수신 직후에 Interim SET DESTINATION 응답에서와 동일한 데이타가 제어기(300)에 전송된다.
오퍼랜드[13]의 status_info에서, 데이타 전송의 종료 상태를 나타내는 코드가 설정된다. 정상 종료의 경우에, 'Success'가 설정된다. 상술한 절차에 의하여, 소스 노드(302)와 행선지 노드(304) 간에 오브젝트 데이타(308)의 전송이 완료된다.
도 16에서, 소스 노드(302)와 행선지 노드(304)로부터 각각 OBJECT SEND 및 SET DESTINATION의 응답 패킷들을 수신한 후에, 제어기(300)는 소스 노드(302)와 행선지 노드(304)에 CLEAR CONNECTION 커맨트 패킷을 전송하여 접속을 해제한다(도 16의 1615 및 1617).
이 명령 패킷은 도 17에서와 같이 형성되고, ctype 필드에 Control이 설정된다. 또한, 이 명령이 도 15a에 도시된 데이타 필드(1511)에 설정되고 소스 노드(302)와 행선지 노드(304)에 전송된다.
도 26은 CLEAR CONNECTION 명령 패킷의 오피코드와 오퍼랜드 필드에 저장된 데이타의 일례를 도시한다. 오피코드 필드에서, 패킷이 접속 해제를 위한 것임을 나타내는 코드가 설정된다. 오퍼랜드[0] 내지 오퍼랜드[2], 오퍼랜드[3], 오퍼랜드[4] 내지 오퍼랜드[7] 및 오퍼랜드[8]의 필드에는, node_vender_id, chip_id_hi, chip_id_lo 및 connection_id의 데이타가 해제되어야 하는 접속들을 식별하기 위해 설정된다.
오퍼랜드[9] 내의 status_info에는, 접속 해제의 이유를 나타내는 코드가 설정된다. 표 9는 CLEAR CONNECTION 명령이 행선지 노드(304)에 전송될 때의 status_info 필드의 값들의 예를 보여준다.
의미
0016 Transfer is over
0116 Transfer is aborted
1216 Serial Bus Error
2016 Source Busy
2116 Too many Destinations
2216 Source Error
FF16 No information
또한, 표 10은 CLEAR CONNECTION 명령이 소스 노드에 전송될 때의 status_info 필드의 값들의 예를 보여준다.
의미
0016 Transfer is over
0116 Transfer is aborted
1216 Serial Bus Error
2016 Destination Busy
2216 Destination Error
FF16 No information
데이타 전송이 종료되면, 소스 노드(302)와 행선지 노드(304) 모두에 대해 status_info 필드에 'Transfer is over'가 설정된다.
CLEAR CONNECTION 명령을 수신한 소스 노드(302) 및 행선지 노드(304)가 노드들 각각의 내부 버퍼에 저장된 접속을 식별하는 데이타가 그들 각각에 대해 설정된 데이타와 일치하면 상기 데이타를 클리어하고, 제어기(300)에 각각 CLEAR CONNECTION 응답 패킷들을 전송한다(도 16의 1616 및 1618).
응답 패킷은 도 19에서와 같이 형성되고, 접속 해제가 정상적으로 이루어지면, 응답 필드에 'Accepted'가 설정된다. 또한, 이 응답은 도 15a의 데이타 필드(1511)에 설정되고, 제어기(300)에 전송된다.
도 26은 CLEAR CONNECTION 응답 패킷의 오피코드 및 오퍼랜드 필드에 저장된 데이타의 일례를 도시한다. 오피코드 필드에서, 패킷이 접속 응답을 위한 것임을 나타내는 코드가 설정된다. node_vender_id, chip_id_hi, chip_id_lo 및 connection_id의 필드에는, 해제되는 접속들을 식별하는 데 사용되는 이들 node_vender_id, chip_id_hi, chip_id_lo 및 connection_id가 설정된다.
status_info 필드에는, 명령의 실행 상태가 설정된다. 표 11은 CLEAR CONNECTION 응답 패킷의 상태 값들의 예를 보여준다. 접속이 정상적으로 해제되면, 'Success'가 설정된다.
반환값 의미
0016 Success
1116 Busy
1216 Serial Bus Error
1416 Unknown connection id
소스 노드(302) 및 행선지 노드(304)로부터 Accepted CLEAR CONNECTION 응답 패킷을 수신한 제어기(300)는 해제된 접속의 connection_id 플래그 레지스터에서 사용되고 있는 비트를 클리어한다. 상기 절차에 따르면, 소스 노드(302)와 행선지 노드(304) 간에 설정된 논리적 접속 관계가 해제되고, 오브젝트 데이타(308)를 전송하기 위한 모든 트랜잭션이 완료된다.
상술한 바와 같이, 제어기(300)에 의해 소스 노드(302) 및 행선지 노드(304)에의 동일한 접속을 식별하기 위한 데이타를 설정함으로써 소스 노드(302)와 행선지 노드(304) 간에 논리적 접속 관계(즉, 상호 접속)를 설정하는 것이 가능하다. 또한, 제어기(300)를 이용하지 않고서 소스 노드(302)와 행선지 노드(304) 간의 트랜잭션에서 오브젝트 데이타 전송 처리를 실행하는 것이 가능하다.
(제3 실시예)
이하, 도 27을 참조하여 본 발명에 따른 제3 실시예에 대하여 설명하겠다. 제1 및 제2 실시예들에서와 같이, 도 3에 도시된 제어기(300), 소스 노드(302), 및 행선지 노드(304) 간에 설정된 접속에 의한 오브젝트 데이타(308)의 전송 절차에 대하여 설명하겠다.
제어기(300)는 접속을 설정하기 위하여 사용자에 의해 선택된 행선지 노드(304)에 SET DESTINATION 명령 패킷을 전송한다(도 27의 2701에서). 이 패킷에는, 제어기(300)의 ROM에 저장된 node_vender_id, chip_id_hi, 및 chip_id_lo의 데이타 및 이 접속에 할당된 connection_id가 기록된다.
SET DESTINATION 명령 패킷에 저장된 명령은 도 17에서와 같이 형성되고, ctype 필드에는 Control이 설정된다. 또한, 이 명령은 도 15a에 도시된 데이타 필드(1511)에 설정되고, 행선지 노드(304)에 전송된다.
도 28은 SET DESTINATION 명령 패킷에 사용되는 오피코드 및 오퍼랜드의 예를 도시한다. 오피코드 필드에는, 접속을 식별하는 데이타가 행선지 노드들(304) 각각에 대하여 설정되는 것을 나타내기 위한 코드가 설정된다.
오퍼랜드[0] 내지 오퍼랜드[2], 오퍼랜드[3], 및 오퍼랜드[4] 내지 오퍼랜드[7]의 필드에는, 제어기(300)의 ROM에 저장된 node_vender_id, chip_id_hi, 및 chip_id_lo의 데이타가 설정된다.
오퍼랜드[8]에는, 제어기(300)에 의해 관리되는 connection_id의 값이 설정된다. 제어기(300)가 이 패킷을 행선지 노드(304)에 전송하면, 나머지 오퍼랜드에는 더미 데이타가 설정된다.
SET DESTINATION 명령 패킷을 수신한 행선지 노드(304)는 제어기(300)에 SET DESTINATION 응답 패킷을 전송한다(도 27의 2702). SET DESTINATION에 저장된 응답은 도 19에서와 같이 형성되고, 도 15a의 데이타 필드(1511)에 설정되어 제어기(300)에 전송된다.
여기서, 행선지 노드(304)가 비동기 방송 트랜잭션을 위한 접속을 설정할 수 있으면, 응답 필드에 Interim이 설정된다(이런 식으로, 행선지 노드(304)는 소스 노드(302)와의 비동기 방송 트랜잭션이 종료되면 제어기(300)에 'Accepted'를 나타내는 응답을 다시 전송한다). 그것이 불가능하면, 'Rejected'가 설정된다.
또한, 도 28에 도시된 바와 같이, 오피코드 및 오퍼랜드 필드들 중에서, 오피코드 필드에는 SET DESTINATION 응답 패킷을 나타내는 코드가 설정되고, node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id의 필드에서, 제어기(300)에 의해 지정된 데이타가 설정된다. 또한, destination_node_vender_id, destination_chip_id_hi 및 destination_chip_id_lo의 필드에, 행선지 노드(304)의 ROM에 기록된 node_vender_id, chip_id_hi, 및 chip_id_lo가 설정된다.
여기서, 접속을 설정하는 것이 가능하고, 행선지 노드들(304) 각각은 행선지 노드의 max_rec의 값(비동기 방송 트랜잭션마다 수신가능한 데이타 크기를 나타내는 값)을 max_rec 필드에 설정하고, 오브젝트 데이타(308)의 수신에 이용 가능한 수신 버퍼 크기가 buffer_size 필드에 설정된다. 여기서, 수신 버퍼의 크기는 max_rec 값의 정수배 또는 제곱이어야 한다.
또한, 접속을 설정하는 것이 불가능하다면, 제어기(300)로부터의 명령 패킷에 설정된 더미 데이타와 동일한 데이타가 max_rec 및 buffer_size 필드들에 설정된다. status_info 필드에는, 명령의 실행 상태가 설정된다. 여기서, SET DESTINATION 응답 패킷의 status_info의 값은 표 3에 예시된 것과 동일하다. 접속이 설정될 수 있으면, 'Success'가 설정된다. 그렇지 않다면, 'Busy'가 설정된다.
도 27에서, 행선지 노드(308)로부터 Interim SET DESTINATION 응답 패킷을 수신한 후에, 제어기(300)는 사용자에 의해 선택된 소스 노드(302)에의 접속 설정을 위한 SET SOURCE 명령 패킷을 전송한다(도 27의 2703). 이 패킷에는, 상기 행선지 노드(304)에 설정된 node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id가 기록된다.
이 명령 패킷에 포함된 명령은 도 17에서와 같이 형성되고, ctype 필드에 Control이 설정된다. 또한, 이 명령은 도 15a의 데이타 필드(1511)에 설정되고, 소스 노드(302)에 전송된다.
도 29는 SET SOURCE 명령 패킷의 일례를 도시한다. 오피코드 필드에는, 접속을 식별하는 데이타가 소스 노드(302)에 대해 설정되었음을 나타내는 코드가 설정된다.
node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id의 필드에는, 행선지 노드들(304) 각각에 설정된 node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id의 데이타가 설정된다. max_rec 및 buffer_size 필드들에는, 행선지 노드들(304) 각각으로부터의 SET DESTINATION 응답 패킷에 설정된 max_rec 및 buffer_size가 설정된다. number_of_destinations 필드에는, 행선지들이 수가 설정된다.
도 27에 도시된 플로우에는, 트랜잭션이 일 대 일이다. 따라서, 이 경우에, 1이 설정된다. node_vender_id, chip_id_hi, chip_id_lo, 및 status_info에 더미 데이타가 설정된다.
도 27에서, SET SOURCE 명령 패킷을 수신하면, 소스 노드(302)는 제어기(300)에 SET SOURCE 응답 패킷을 전송한다(도 27의 2704). SET SOURCE 응답 패킷에 포함된 응답은 도 19에서와 같이 형성된다. 또한, 이 응답은 도 15a의 데이타 필드(1511)에 설정되고, 제어기(300)에 전송된다.
소스 노드(302)가 비동기 방송 트랜잭션을 위한 접속을 설정할 수 있는 경우, 응답 필드에 'Accepted'가 설정된다. 그것이 불가능하면, 'Rejected'가 설정된다. 또한, 도 29에 도시된 바와 같이, 오피코드 및 오퍼랜드 필드들 중에서, 오피코드 필드에는 SET SOURCE 응답 패킷을 나타내는 코드가 설정되고, node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id의 필드에는, 제어기(300)에 의해 지정된 데이타가 설정된다.
비동기 방송 트랜잭션을 위한 접속이 설정될 수 있으면, 소스 노드(302)는 SET SOURCE 명령 패킷으로부터 접속 식별자 데이타를 페치하여 이를 내부 버퍼에 저장한다. source_node_vender_id, source_chip_id_hi, 및 source_chip_id_lo의 필드에는, 소스 노드(302)의 ROM에 기록된 node_vender_id, chip_id_hi, 및 chip_id_lo가 설정된다.
max_rec 및 buffer_size 필드들에는, SET SOURCE 명령 패킷에 설정된 데이타가 설정된다. 본 실시예에따르면, 소스 노드(302)는 복수개의 행선지 노드들과의 접속을 설정할 수 있다. 그러나, 행선지 노드들(304) 각각에 구비된 비동기 방송 등의 수신을 위한 버퍼의 용량 때문에, 행선지 노드들의 수가 제한된다.
그러므로, 소스 노드(302)는 SET SOURCE 명령 패킷의 number_of_destinations의 값을 조사하고, 그 값이 접속 가능한 수보다 작다면 그 값을 SET SOURCE 응답 패킷에 설정한다. 만일 그 값이 접속 가능한 수를 초과하면, 노드들이 접속될 수 있는 값만이 설정된다. status_info 필드에는, 명령의 실행 상태가 설정된다.
SET SOURCE 응답 패킷의 status_info의 값은 표 4에 예시된 것과 동일하다. 접속이 가능하다면, 행선지 노드들의 수가 접속 설정이 가능한 노드 수보다 작다는 전제에서, 'Success'가 설정된다. 그렇지 않다면, 'Too many destinations'가 설정된다. 접속의 설정이 불가능하다면, 'Busy'가 설정된다.
도 27에서, 소스 노드(302)로부터 Accepted SET SOURCE 응답 패킷을 수신하면, 제어기(300)는 SET SOURCE 응답 패킷의 status_info 필드를 조사하고, 만일 'Success'가 확인되면 소스 노드(302)에 OBJECT SEND 명령 패킷을 전송한다(도 27의 1605에서). 이 점에서, OBJECT SEND 명령의 동작은 제2 실시예와 동일하다. 따라서, 이에 대한 설명은 생략한다.
도 27에 도시된 절차를 실행하면, 제어기(300), 행선지 노드 (304), 및 소스 노드(302) 간에 논리적 접속 관계(즉, 상호접속)가 설정된다. 그 후, 이 접속을 이용하여 오브젝트 데이타(308)의 비동기 방송 트랜잭션이 개시된다.
이 점에서, SET DESTINATION, SET SOURCE, OBJECT SEND 패킷들은 도 15a의 destination_ID 필드(1501)에 수신 노드들의 노드 ID들을 지정하는 각각의 패킷들을 이용한다. 그 후, 노드들 각각으로부터 전송이 이루어진다.
제어기(300)는 제어기 자체에 의해 설정된 접속에 이용되는 connection_id를 관리하기 위한 connection_id의 관리 테이블을 가진다. 예를 들면, 도 30에 도시된 바와 같이, 제어기(300)는 connection_id, max_rec, buffer_size, 행선지 노드들의 수, 및 행선지 노드(304)와 소스 노드(302)의 EUI-64 값들 각각에 대한 플래그 레지스터를 위에 저장하는 데이타 버퍼를 가진다. 현재 사용중인 connection_id에 대한 플래그 레지스터에는 '사용중'(in use)을 나타내는 비트가 설정되고, 이 connection_id에 대응하는 각각의 데이타가 유지된다. 제어기(300)는 플래그 레지스터들을 조사한 다음, 미사용중인 connection_id를 할당하여 복수 개의 접속을 설정하고 동시에 관리한다.
도 27에서, OBJECT SEND 응답 패킷을 전송한 후에, 소스 노드(302)는 제2 실시예와 동일한 방식으로 오브젝트 데이타(308)의 전송을 개시한다. 여기서, 도 27에 도시된 바와 같이, 행선지 노드(304)가 데이타 세그먼트 #m+1을 수신한 후에 버스 리셋이 행해지면, 버스 상의 노드들 각각은 IEEE 1394-1995 표준에 의해 규정된 절차에 따라서 버스의 재구성을 수행한다(도 27의 2705). 이런 식으로, 소스 노드(302)와 행선지 노드(304)의 노드 ID들이 리셋된다.
버스 리셋이 완료되면, 행선지 노드(304)는 destination_id 필드(1501)에 설정된 멀티캐스트 ID를 가진 비동기 패킷(도 15a에 도시됨)을 사용하여 도 25에 도시된 포맷으로 수신 응답 패킷을 전송한다(도 27의 2706). 또한, 오브젝트 데이타(308)의 비동기 방송 트랜잭션이 도 15b에 도시된 패킷 포맷으로 실행되면, 행선지 노드(304)는 특정 채널 번호의 채널 필드에 저장된 패킷을 이용하여 수신 응답 패킷을 전송한다.
여기서, 수신 응답 패킷의 node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id의 필드에는, 각각의 버스 리셋 전에 제어기(300)에 의해 설정된 node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id의 값들이 설정된다. 또한, control_flags 필드에는, 재송신 요구가 설정되고, 시퀀스 번호 필드에는, 버스 리셋이 이루어지기 전에 정상적으로 수신된 세그먼트 데이타의 시퀀스 번호에 1을 가산하여 얻어지는 값(여기서는, m+2)이 설정된다.
버스 리셋 후에, 소스 노드(302)는 'Resend request'에 의해 설정된 행선지 노드(304)로부터의 수신 응답 패킷을 기다린다. 그것을 수신한 후에, 소스 노드(302)는 수신 응답 패킷의 node_vender_id, chip_id_hi, chip_id_lo, 및 connection_id를 조사하고, 이들 id들이 리셋 전에 사용된 데이타와 일치하면 요구된 sequence_number의 세그먼트 데이타를 시작으로 비동기 방송 트랜잭션을 재개한다.
또한, 버스 리셋 후, 제어기(300)는 소스 노드(302)와 행선지 노드(304) ID들의 관리를 위한 도 30에 나타난 connection_id 관리 표를 사용하고, destination_ids에 대응하여 설정된 접속들을 가진 행선지 노드(304) 및 소스 노드(302)의 EUI-64 값들을 판독하며, 버스 리셋으로 인해 변경되었던 행선지 노드(304)와 소스 노드(302)의 노드 ID들을 검출한다.
이 노드 ID 검출은 예를 들면 버스 상의 모든 노드들에 대해 비동기 판독 트랜잭션을 사용하여 노드의 ROM 상에 기입된 EUI-64 값을 판독함으로써 실행 가능하다.
각 노드 ID들의 검출이 완료될 때, 제어기(300)는 SET DESTINATION 명령 패킷(SET DESTINATION command packet)을 행선지 노드(304)로 전송하고 SET SOURCE 명령 패킷(SET SOURCE command packet)을 소스 노드(302)로 전송하여 접속을 재개한다(도 27의 2707과 2709). 다음으로, 행선지 노드(304)와 소스 노드(302)는 각각의 응답 패킷들을 제어기(300)에 전송한다(도 27의 2708과 2710). 이 때, Interim은 각각의 응답 패킷의 응답 필드 내에 설정된다.
전술된 절차에 따라, 버스 리셋이 발생할 때 접속의 재설정 및 데이타 전송을 확실히 실행할 수 있다. 더욱이, 제1 실시예의 동일 절차가 버스 리셋팅 후 데이타 전송 및 접속 해제(connection release)에 적용될 수 있다.
전술된 바와 같이, 제3 실시예에 따라, 제어기(300)은 버스 리셋이 발생할 때 조차도 어떠한 변화없이 소스 노드와 행선지 노드 간의 논리적 접속 관계를 설정할 수 있기 때문에, 그러한 경우에 데이타 전송을 즉시 재개할 수 있게 한다.
(제4 실시예)
제4 설명에서는, 소스 노드(302)와 복수 개의 행선지 노드(304)들 간의 접속을 이용함으로써 오브젝트 데이타(308)의 비동기 방송 트랜잭션이 이루어지는 경우에 대해 설명될 것이다.
도 31에서, 각각의 행선지 노드(304)는 각기 상이한 크기의 수신 버퍼를 가진다. 행선지 노드 #1은 32K 바이트의 수신 버퍼를 가진다. 행선지 노드 #2는 48K 바이트를 가지고, 행선지 노드 #3은 64K 바이트를 가진다. 또한, 도 31에서, max_rec 값은 행선지 노드 #1에 대해서는 512 바이트이고; 행선지 노드 #2에 대해서는 1024 바이트이며, 행선지 노드 #3에 대해서는 1024 바이트이다.
이제 도 32를 참조하여, 본 발명의 제4 실시예에 따른 전송 절차를 설명할 것이다.
제어기(300)는 각각의 행선지 노드(304)들에 접속을 설정하는 SET DESTINATION 명령 패킷을 순차적으로 전송한다. 여기서, 명령 패킷의 포맷은 제2 실시예에 나타난 것과 동일하다. 또한, 각각의 행선지 노드(304)들에 전송된 SET DESTINATION 명령 패킷의 node_vender_id, chip_id_hi, chip_id_lo 및 connection_id의 필드에 대해 동일한 값이 설정된다.
SET DESTINATION 명령 패킷을 수신한 각각의 행선지 노드(304)들은 패킷으로부터 내부 버퍼에 접속 식별자 데이타를 설정하고, 제2 실시예에서와 같이 제어기(300)에 SET DESTINATION 응답 패킷을 전송한다.
이 때, 행선지 노드 #1은 도 18에 나타난 max_rec 필드에 512 바이트를 가리키는 데이타는 물론 buffer_size 필드에 32K 바이트를 가리키는 데이타를 설정하고, Interim을 가리키는 응답 패킷을 전송한다. 여기서, 수신 버퍼의 크기는 max_rec 값의 정수배 또는 2배이다.
마찬가지로, 행선지 노드 #2는 max_rec 필드에 1024 바이트를 가리키는 데이타를 설정하고 buffer_size 필드에 48K 바이트를 가리키는 데이타를 설정하고; 행선지 노드 #3은 max_rec 필드에 1024 바이트를 가리키는 데이타를 설정하고 buffer_size 필드에 64K 바이트를 가리키는 데이타를 설정하고 나서, Interim을 가리키는 응답 패킷을 전송한다.
행선지 노드(304)들 각각으로부터 SET DESTINATION 응답 패킷을 수신한 후, 제어기(300)는 사용자에 의해 선택된 소스 노드(302)에 SET SOURCE 명령 패킷을 전송하여 접속을 설정한다.
여기서, SET SOURCE 명령 패킷은 제2 실시예와 같은 포맷을 가진다. 이 패킷에는, 각각의 행선지 노드(304)들에 대해 설정된 node_vender_id, chip_id_hi, chip_id_lo 및 connection_id가 기입된다. 또한, max_rec 필드에는, 각각의 행선지(304)들로부터 수신된 max_rec값들 중 최소값이 설정된다.
본 실시예에서, 3개의 행선지 노드(304)들로부터 수신된 max_rec 값들은 예를 들면, 각기 512 바이트, 1024 바이트 및 1024 바이트이다. 따라서, 제어기(300)는 max_rec 필드에 512 바이트를 가리키는 데이타를 설정한다. 또한, buffer_size 필드에는, 각각의 행선지 노드(304)들로부터 수신된 buffer_size 값들 중 최소값이 설정된다. 본 실시예에 따르면, 3개의 행선지 노드(304)들로부터 수신된 buffer_size들은 각기 32K 바이트, 48K 바이트 및 64K 바이트이다. 따라서, 제어기(300)는 32K 바이트를 가리키는 데이타를 설정한다. 또한, number_of_destination 필드에는, 행선지 노드의 갯수를 가리키는 숫치 3이 설정된다.
SET SOURCE 명령 패킷을 수신한 소스 노드(302)는 제어기(300)에 SET SOURCE 응답 패킷을 전송한다. 여기서, SET SOURCE 응답 패킷의 포맷은 제2 실시예에 나타난 것과 동일하다. 또한, 제2 실시예에서와 같은 데이타가 각각의 필드에 설정된다.
소스 노드(302)로부터 Accepted SET SOURCE 응답 패킷을 수신한 후, 제어기(300)는 소스 노드(302)로부터 SET SOURCE 응답 패킷의 status_info 필드를 조사하고, 'Success'가 확인되면, 소스 노드(302)에 OBJECT SEND 명령 패킷을 전송한다. 이러한 관점에서, OBJECT SEND 명령의 기능 및 동작은 제2 실시예의 것과 동일하다. 이에 대한 설명은 생략될 것이다.
전술된 바와 같이, 제어기(300), 각각의 행선지 노드(304)들과, 소스 노드(302) 간의 도 32에 나타난 절차의 실행에 따라, 논리적 접속 관계(즉, 상호접속)가 소스 노드(302)와 복수의 행선지 노드들 간에 설정된다. 다음으로, 이와 같이 설정된 접속을 이용하여 오브젝트 데이타(308)의 비동기 방송 트랜잭션이 개시된다.
이러한 관점에서, 그 수신 노드 ID들이 도 15a에 나타난 각각의 행선지 ID 필드(1501)에 지정된 패킷을 이용하여 SET DESTINATION, SET SOURCE 및 OBJECT SEND 패킷들이 각각의 노드들로부터 전송된다.
도 32에서, OBJECT SEND 응답 패킷을 전송한 후, 소스 노드(302)는 제2 실시예와 같은 방식으로 오브젝트 데이타(308)을 전송하기 시작한다. 제2 실시예에서와 같이, 소스 노드(302)는 멀티캐스트 ID, 접속 식별자 데이타 및 1 세그먼트 데이타를 포함하는 방송 패킷을 순차적으로 전송한다. 각각의 행선지 노드(304)들은 수신된 패킷의 접속 식별자 데이타를 식별하고, 그러한 데이타가 자신의 접속 식별자 데이타와 일치하는 경우 패킷에 포함된 세그먼트 데이타를 내부 수신 버퍼 상에 순차적으로 기록한다.
제2 실시예에서와 같이, 소스 노드(302)는 전송된 세그먼트 데이타의 전체 크기를 카운트하고, 제어기(300)로부터 통지된 행선지 노드의 버퍼 크기까지 순차적으로 세그먼트 데이타를 전송한다.
이 경우, 각 패킷의 control_flag 필드에는 통상의 데이타가 설정된다. 소스 노드(302)는 control_flag 필드에 버퍼 종료를 설정하고 전송된 데이타의 전체 크기가 행선지 노드의 버퍼 크기를 초과하지 않는 적정 크기에 도달하는 경우에 데이타를 전송한다.
도 31에 나타난 예에서, buffer_end가, 세그먼트(세그먼트 번호(127))가 전송될 때 control_flag에 설정된다. 이 때, 전체 크기는 (SET SOURCE 명령 패킷에 의해 통지되는) 버퍼 크기와 동일하게 된다. 이후, 소스 노드(302)는 각각의 행선지 노드(304)들로부터 전송된 수신 응답 패킷을 대기한다.
각각의 행선지 노드(304)들은 각 방송 패킷들이 수신될 때 패킷 내의 control_flag를 조사한다. 조사된 값이 통상의 데이타를 가리키는 경우, 이들은 각기 다음 패킷이 전송될 때 까지 대기한다. control_flag의 값이 버퍼 종료를 가리키는 경우, 이들은 각기 (하드 디스크와 같은) 일부 다른 버퍼에 수신 버퍼 상에 기입된 데이타를 복사하고, 버퍼를 클리어하며, 멀티캐스트(multicast) ID를 사용하여 도 25에 나타난 포맷으로 수신 응답 패킷을 전송한다. 이 때, 'Receive success'가 control_flag 필드에 설정되고, 시퀀스 번호 필드에는 버퍼 종료를 가리키는 방송 패킷의 시퀀스 번호가 설정된다. 도 31에 나타난 예에서, 127이 설정된다.
소스 노드(302)는 제어 플래그 필드에 설정된 버퍼 종료를 가진 세그먼트 데이타를 전송하고, 각각의 행선지 노드(304)들로부터 수신 응답 패킷을 수신하고나서, 제1 실시예에서와 같이 다음 세그먼트 데이타의 전송을 개시한다. 오브젝트 데이타(308)의 최종 세그먼트 데이타가 전송될 때, 제1 실시예에서와 같이 control_flag 필드에 오브젝트 종료를 설정하고, 이를 전송하여 행선지 노드(304)로부터 수신 응답을 대기한다.
오브젝트 종료가 내부에 설정되어 있는 세그먼트 데이타의 방송 패킷을 수신한 각각의 행선지 노드(304)들은 다른 방송 패킷에서와 같은 방식으로 수신 응답을 전송한다. 이후, 각각의 행선지 노드들은 제2 실시예에서와 같이 제어기(300)에 SET DESTINATION 응답 패킷을 전송한다.
또한, 각각의 행선지 노드(304)들로부터 오브젝트 종료의 수신 응답 패킷을 수신하면, 소스 노드(302)는 제2 실시예에서와 같이 제어기(300)에 OBJECT END 응답 패킷을 전송한다. 전술된 절차를 실행함으로써, 오브젝트 데이타(308)의 비동기 방송 트랜잭션이 소스 노드(302)와 복수의 행선지 노드(304)들 간에 완료된다.
OBJECT SEND와, 소스 노드(302)와 각각의 행선지 노드(304)들로부터의 SET DESTINATION을 각기 가리키는 응답 패킷을 수신한 후, 제어기(300)는 각각의 행선지 노드(304)들과 소스 노드(302)에 CLEAR CONNECTION 명령 패킷을 전송하여 접속을 해제시킨다. 이에 관련하여, CLEAR CONNECTION 명령 패킷은 제2 실시예에 나타난 바와 같은 포맷이다.
CLEAR CONNECTION 명령 패킷을 수신한 각각의 행선지 노드(304)들과 소스 노드(302)는 제2 실시예에 나타난 것과 같은 절차로 접속을 해제하고나서, 각기 제어기(300)에 CLEAR CONNECTION 응답 패킷을 전송한다.
각각의 행선지 노드(304)들과 소스 노드(302)로부터 Accepted CLEAR CONNECTION 응답 패킷을 수신함에 따라, 제어기(300)는 접속을 해제하고, 동시에 도 22에 나타난 connection_id 플래그 레지스터에 의해 사용된 비트들을 클리어한다. 전술된 절차를 실행함으로써, 소스 노드(302)와 복수의 행선지 노드(304)들 간에 설정된 논리적 접속 관계가 해제되어 이 접속을 이용하는 모든 트랜잭션이 종료된다.
또한, 제4 실시예에 따르면, 제2 실시예에서와 같은 방식으로 도 15b에 나타난 패킷 포맷을 사용함으로써 오브젝트 데이타(308)의 트랜잭션을 수행할 수 있다.
또한, 제4 실시예에 따르면, 각각의 행선지 노드(304)들은 오브젝트 데이타(308)가 전송되는 동안 임의의 버스 리셋이 발생한다고 할지라도 제3 실시예에서와 같은 프로세스를 실행하기 때문에, 오브젝트 데이타(308)의 전송을 재개할 수 있게 된다. 이 경우, 소스 노드(302)는 각각의 행선지 노드(304)들로부터 수신 응답 패킷을 수신하고, 최소의 시퀀스수에 1을 더한 세그먼트 데이타에서 시작하는 전송을 재개한다.
전술된 바와 같이, 제4 실시예에 따르면, 제어기(300)가 소스 노드와 복수의 행선지 노드들 간의 논리적 접속 관계(즉, 상호접속)를 설정할 수 있다. 또한, 제어기(300)의 간섭없이 방송 트랜잭션에 의해 소스 노드와 복수의 행선지 노드들 간에 간단하면서도 효과적으로 데이타 전송 프로세스가 실행될 수 있다.
또한, 각각의 행선지 노드들의 수신 용량이 다르다고 할지라도, 데이타가 전송되어야 하는 복수의 행선지 노드들의 최저 수신 용량을 고려하여 실행가능하게 되는 데이타 전송으로 인해 프로세스가 복잡해지지 않고도 데이타 전송을 수행할 수 있다.
(제5 실시예)
이제, 본 발명에 따른 제5 실시예가 기술될 것이다. 제5 실시예에서는, 제어기(300)가 제1 내지 제4 실시예에서와 같이 소스 노드(302)와 행선지 노드(304) 간의 논리적 접속(즉, 상호 접속)을 설정하고, 오브젝트 데이타(308)의 전송이 소스 노드(302)와 행선지 노드(304) 간의 비동기 트랜잭션에 의해 수행되는 통신 프로토콜에 대해 설명될 것이다.
제5 실시예에 따르면, 소스 노드(302)와 행선지 노드(304) 간에 적절하게 행선지 노드(304)에 제공된 수신 버퍼의 크기를 설정할 수 있는 통신 프로토롤에 대해 설명될 것이다.
이후, 첨부된 도면을 참조하여, 본 발명의 제5 실시예에 따른 통신 프로토콜이 설명될 것이다. 이러한 관점에서, 제5 실시예의 통신 프로토콜의 기본 구조는 제5 실시예와 동일한 것으로 가정되며, 이에 대한 설명은 생략될 것이다.
도 33은 본 발명의 제5 실시예에 따른 통신 프로토콜의 기본 절차를 도시한 시퀀스 챠트이다.
도 33에서, 비동기적으로 오브젝트 데이타(308)를 전송하는 노드, 즉 소스 노드(302)는 DVCR(28)이라고 가정된다.
또한, 소스 노드(302), 즉 행선지 노드(304)로부터 비동기적으로 전송된 오브젝트 데이타(308)을 수신하는 노드는 프린터(60)이라고 가정된다. 더욱이, 소스 노드(302)와 행선지 노드(304) 간의 통신을 관리하는 노드, 즉 제어기(300)은 컴퓨터(10)라고 가정된다.
제5 실시예에 따르면, 통신 프로토콜은 3가지 단계로 형성된다. 제1 단계(3304)는 접속 단계이고, 제어기(300)는 수신 버퍼의 크기는 물론, 수신이 가능한지에 대해 행선지 노드(304)에 질의하고, 행선지 노드(304)가 수신 대기중이 되도록 설정한다.
또한, 제어기(300)는 행선지 노드(304)를 질의한 수신 버퍼 크기를 소스 노드(302)에 통지하고, 동시에 소스 노드(302)로부터 전송된 오브젝트 데이타(308)을 비동기적으로 선택하여, 수신 버퍼로부터 전송을 설정한다. 이러한 방식으로, 소스 노드(302)와 행선지 노드(304) 간의 접속이 설정된다.
제2 단계(3305)는 제어기(300)가 소스 노드(302)와 행선지 노드(304)를 제어하여 오브젝트 데이타(308)을 비동기적으로 전송하는 전송 단계이다.
제3 단계(3306)는 제어기(300)가 그 자신의 관리하에서 행선지 노드(304)의 수신 버퍼를 해제하고 또한 그 자신의 관리하에서 소스 노드(302)의 송신 버퍼를 해제하는 접속 해제 단계이다.
도 34는 비동기적으로 소스 노드(302)로부터 전송된 오드젝트 데이타(308)와 행선지 노드(304)의 수신 버퍼 간의 관계를 도시한 도면이다. 비동기적으로 소스 노드(302)로부터 전송된 하나의 오브젝트 데이타(308)는 제어기(300)로부터 통지된 행선지 노드(304)의 수신 버퍼의 크기와 동일한 하나 이상의 세그먼트(3402)로 분할된다. 여기서, 각 세그먼트(3402)들의 크기는 고정된다. 하나의 세그먼트는 고정된 길이의 하나 이상의 데이타로 형성된다.
각각의 세그먼트 데이타는 비동기 전송 모드를 사용하기 위한 패킷(3403)(이하 비동기 패킷(3403)으로 칭함)으로 패킷화되고 소스 노드(302)로부터 행선지 노드(304)로 순차적으로 전송된다.
행선지 노드(304)는 순차적으로 소스 노드(302)로부터 각각의 비동기 패킷(3403)들을 수신하고, 임시로 수신 버퍼(3404) 상에 기록한다. 하나의 세그먼트(3042) 전송이 완료된 후, 행선지 노드(304)는 순차적으로 내부 메모리(3405) 상의 수신 버퍼에 저장된 데이타를 기록한다.
이제, 도 35와 도 36를 참조하여 제5 실시예의 전송 단계(3305)에 대해 상세히 설명될 것이다.
도 35는 본 발명의 제5 실시예에 따라 전송 단계(3305)를 상세히 도시한 시퀀스 챠트이다. 또한, 도 36은 제1 실시예에 따른 전송 단계(3305)의 절차를 상세히 도시한 플로우챠트이다.
단계(S3601)에서, 제어기(300)는 행선지 노드(304)에게 몇몇 통신 패킷들에 비동기적으로 전송된 특정 크기의 오브젝트 데이타(308)을 수신하도록 명령한다(도 35의 3504). 여기서, 행선지 노드(304)는 제어기(300)로부터 이 명령에 응답을 변환시킨다.
단계(S3602)에서, 제어기(300)는 오브젝트 데이타(308)를 특정 크기의 각 세그먼트들로 분할하고 몇몇 통신 패킷들에 세그먼트들을 비동기적으로 전송하도록 소스 노드(302)에 명령한다(도 35의 3505). 여기서, 소스 노드(302)는 제어기(300)로부터 명령에 응답을 반환한다.
단계(S3603)에서, 제어기(300)로부터의 명령에 이어서, 소스 노드(302)는 하나의 세그먼트를 하나 이상의 비동기 패킷들로 패킷화하여, 이들을 행선지 노드(304)에 순차적으로 전송한다(도 35의 3506).
여기서, 각각의 비동기 패킷들에는, 행선지 노드(304)에 제공된 수신 버퍼의 특정 영역을 지정하는 오프셋 어드레스가 저장된다. 예를 들면, 각 세그먼트의 제1 비동기 패킷에는, 제어기(300)에 의해 통지된 수신 버퍼의 헤더 어드레스가 저장된다. 또한, 다음의 비동기 패킷에는, 수신 버퍼들의 특정 영역을 순차적으로 가리키는 오프셋 어드레스가 저장된다.
단계(S3604)에서, 하나의 세그먼트부의 비동기 전송의 완료후, 소스 노드(302)는 하나의 세그먼트부의 전송의 완료를 제어기(300)에 통지한다(도 35의 3507). 여기서, 소스 노드(302)는 제어기(300)로부터 명령을 수신할 때까지 다음 세그먼트 전송을 대기한다.
단계(S3605)에서, 행선지 노드(304)는 또한 하나의 세그먼트 수신의 완료를 제어기(300)에 통지한다(도 35의 3508).
단계(S3606)에서, 게다가 행선지 노드(304)는 다음 세그먼트를 수신하도록 새로 확보될 수 있는 수신 버퍼의 크기를 제어기(300)에 통지한다(도 35의 3509). 여기서, 제어기(300)는 이를 도 6에 나타난 CSR 공간의 특정 영역에 저장한 후 행선지 노드(304)로부터 통지된 새로운 버퍼 크기를 관리한다.
전술된 절차를 실행함으로써, 하나의 세그먼트의 전송이 완료된다.
다음 세그먼트의 전송이 개시되면, 제어기(300), 소스 노드(302) 및 행선지 노드(304)는 도 35의 절차 단계(3504 내지 3509)를 반복하면 된다(단계 3607). 이 때, 제어기(300)는 하나의 세그먼트 전송의 완료마다 행선지 노드(304)로부터 알려진 새로운 버퍼 크기를 소스 노드(302)에 통지한다.
상술한 바와 같이, 제5 실시예에 따르면, 하나의 세그먼트 전송이 각각 완료되면, 행선지 노드(304)는 제어기(300)에 새로운 버퍼 크기를 통지하여, 행선지 노드(304)의 수신 능력에 따라 각각의 세그먼트에 대한 데이타의 양을 적당하게 설정한다.
(제6 실시예)
상술한 제5 실시예에 있어서, 행선지 노드(304)로 하여금 오브젝트 데이타(308)의 하나의 세그먼트부의 수신마다 다음번 세그먼트 수신을 위해 행선지 노드(304)에 의해 새로 확보된 수신 버퍼의 크기를 제어기(300)에게 통지하도록 제어하는 통신 프로토콜이 설명되었다.
본 발명의 제6 실시예에서는, 행선지 노드(304)로 하여금 직접 소스 노드(302)에게 다음번 세그먼트 수신을 위해 새로 확보된 수신 버퍼 크기를 통지하도록 제어하는 통신 프로토콜이 설명된다.
제5 실시예에서와 같이, 제6 실시예의 통신 프로토콜은 3가지 단계들, 즉 접속 단계, 전송 단계, 접속 해제 단계로 형성된다. 제6 실시예의 접속 단계와 접속 해제 단계는 제5 실시예에서 설명한 제1 단계(3304)와 제3 단계(3306)로서 실행가능하다. 이에 따라 제6 실시예에서는 전송 단계(3305)가 상세히 설명될 것이다.이하, 도 37 및 도 38과 연관하여 제6 실시예가 상세히 설명될 것이다.
도 37은 본 발명의 제6 실시예에 따른 전송 단계를 상세히 나타낸 시퀀스 챠트이다. 도 38은 제6 실시예에 따른 전송 단계의 절차를 상세히 나타낸 플로우챠트이다.
단계(S3801)에서, 제어기(300)는 일부 통신 패킷들로 비동기적으로 전송되는 특정 크기의 오브젝트 데이타(308)를 수신하도록 행선지 노드(304)에게 명령한다(도 37의 3704). 여기서 행선지 노드(304)는 제어기(300)로부터의 상기 명령에 대한 응답을 반환한다.
단계(S3802)에서, 제어기(300)는 오브젝트 데이타(308)를 특정 크기의 세그먼트들로 분할하여 그 세그먼트들을 몇개의 통신 패킷들로 비동기적으로 전송하도록 소스 노드(302)에게 명령한다(도 37의 3705). 여기서 소스 노드(302)는 제어기(300)로부터의 이 명령에 대한 응답을 반환한다.
단계(S3803)에서는, 제어기(300)로부터의 지시 다음에, 소스 노드(302)는 하나의 세그먼트를 하나 이상의 비동기 패킷들로 패킷화하고 이들을 순차적으로 행선지 노드(304)에 전송한다 (도 37의 3706). 여기서, 비동기 패킷들 각각에는, 행선지 노드(304)에 제공된 수신 버퍼의 특정 영역을 지정하는 오프셋 어드레스가 저장되어 있다. 예를 들어, 각각의 세그먼트의 제1 비동기 패킷에는, 제어기(300)에 의해 통지되는 수신 버퍼의 헤더 어드레스가 저장된다. 또한, 후속되는 비동기 패킷들에는, 수신 버퍼들의 특정 영역들을 순차적으로 지정하는 오프셋 어드레스들이 저장된다.
단계(S3804)에서, 하나의 세그먼트부의 비동기 전송이 완료된 후, 소스 노드(302)는 하나의 세그먼트부의 전송이 완료된 것을 제어기(300)에게 통지한다 (도 37의 3707). 여기서, 소스 노드(302)는 제어기(300)로부터 지시를 수신할 때까지 다음번 세그먼트 전송을 대기한다.
단계(S3805)에서, 행선지 노드(304)는 또한 하나의 세그먼트가 수신 완료된 것을 제어기(300)에게 통지한다 (도 37의 3708).
단계(S3806)에서, 행선지 노드(304)는 다음번 세그먼트를 수신하기 위해 새로 확보될 수 있는 수신 버퍼의 크기를 소스 노드(302)에게 더 통지한다 (도 37의 3709).
단계(S3807)에서, 소스 노드(302)는 도 6에 도시된 CSR 공간의 특정 영역에 수신 버퍼의 크기를 저장하고, 이와 동시에, 수신 버퍼 크기를 수신하였음을 제어기(300)에게 통지한다 (도 37의 3710). 이러한 통지로써, 제어기(300)는 다음번 세그먼트의 전송 개시를 지시할 수 있게 된다.
상술한 절차를 실행함으로써, 하나의 세그먼트의 전송이 완료된다. 다음 세그먼트의 전송이 개시되면, 제어기(300), 소스 노드(302), 및 행선지 노드(304)는 단지 도 37의 절차 단계들(3704 내지 3710)을 반복해야만 한다 (단계 S3808).
이때, 소스 노드(302)는 하나의 세그먼트 전송의 완료때 마다 행선지 노드(304)로부터 통지된 새로운 수신 버퍼의 크기를 수신하고, 수신된 크기에 따라 다음에 전송되어야 하는 세그먼트의 크기를 결정한다. 상술한 바와 같이, 제6 실시예에 따르면, 오브젝트 데이타(308)의 하나의 세그먼트 전송이 각각 완료되면, 행선지 노드(304)는 새로운 버퍼 크기를 소스 노드(302)에게 직접 통지하고, 이에 따라, 행선지 노드(304)의 수신 능력에 따라 각각의 세그먼트에 대한 데이타 양을 적당하게 설정한다.
또한, 제6 실시예에 따르면, 제어기(300)가 오브젝트 데이타(308)의 통신 동안 변경된 행선지 노드(304)의 수신 버퍼의 크기를 관리할 필요가 없다. 이에 따라, 이 크기는 소스 노드(302)와 행선지 노드(304) 사이에서 관리될 수 있다. 이러한 방식으로, 제5 실시예와 비교해서, 제어기(300)의 부하가 작아질 수 있다.
(제7 실시예)
제6 실시예에서는, 제어기(300)와 소스 노드(302)와 행선지 노드(304) 사이의 접속을 설정하고, 동시에 제어기(300)가 세그먼트들 각각의 전송 개시를 지시할 수 있게 제어하는 통신 프로토콜이 설명되었다.
본 발명의 제7 실시예에서는, 제어기(300)에 의해 소스 노드(302)와 행선지 노드(304) 사이에 설정된 접속 다음에 제어기(300)의 개입없이 소스 노드(302)와 행선지 노드(304) 사이의 각각의 세그먼트 전송을 제어하는 통신 프로토콜이 설명된다.
이하, 도 2에 도시된 통신 시스템에 제7 실시예의 통신 프로토콜이 적용되는 경우가 설명된다. 제7 실시예에 있어서, 제어기(300)는 컴퓨터(10)이고, 소스 노드(302)는 DVCR(28)이고, 행선지 노드(304)는 프린터(60)라고 가정한다.
제7 실시예에 따르면, 소스 노드(302)는 도 34에 도시된 하나의 오브젝트 데이타 (이미지 데이타, 오디오 데이타, 그래픽 데이타, 및 텍스트 데이타 등)를 특정한 크기의 개개의 세그먼트로 분할한 다음, 이러한 세그먼트를 고정된 길이를 갖는 하나 이상의 데이타로서 비동기적으로 전송한다.
또한, 행선지 노드(304)는 소스 노드(302)로부터 비동기적으로 전송된 하나 이상의 비동기 패킷들을 수신하고, 각각의 비동기 패킷들 내에 포함된 고정 길이의 데이타를 수신 버퍼에 순차적으로 저장한다. 여기서, 행선지 노드(304)의 수신 버퍼는 행선지 노드(304)에 제공된 CSR(제어 및 상태 레지스터)의 공간에 확보된다(도 6을 참조한다).
각각의 세그먼트들은 각각의 비동기 패킷들 내에 포함된 오프셋 어드레스에 의해 지정된 CSR 공간 내의 특정 영역에 기록된다. 행선지 노드(304)는 CSR 공간 내의 특정 영역에 기록이 될 때마다 하나의 세그먼트부를 내부 메모리 상에 저장한다.
또한, 제어기(300)는 행선지 노드(304)에의 지시에 따라 소스 노드(302)와 행선지 노드(304) 간의 접속을 관리하여, 행선지 노드(304)가 버퍼 영역을 해제하거나 또는 소스 노드(302)가 다른 것들 중에 오브젝트 데이타(308)의 전송을 개시하도록 지시한다.
이하, 본 발명의 제7 실시예에 따른 통신 프로토콜이 설명될 것이다.
도 39는 본 발명의 제7 실시예에 따른 통신 프로토콜을 상세히 나타낸 시퀀스 챠트이다, 도 40은 제7 실시예에 따른 통신 프로토콜의 절차를 상세히 나타낸 플로우챠트이다.
제5 실시예의 통신 프로토콜에서와 같이, 제7 실시예의 통신 프로토콜은 3가지 단계들, 즉, 접속 단계(3304), 전송 단계(3305), 및 접속 해제 단계(3306)로 형성된다.
먼저, 접속 단계(3304)가 설명될 것이다.
단계(S4001)에서, 제어기(300)는 소스 노드(302)와 행선지 노드(304) 사이의 접속을 설정하고 행선지 노드에게 수신 버퍼를 해제하도록 지시하고 오브젝트 데이타(308)의 수신을 개시한다(도 39의 3904). 여기서, 행선지 노드(304)는 제어기(300)로부터의 이러한 명령에 대한 응답을 반환한다.
이제, 전송 단계(3305)가 설명될 것이다.
단계(S4002)에서, 제어기(300)는 소스 노드(302)에게 송신 버퍼를 해제하고, 어브젝트 데이타(308)의 송신을 개시하도록 지시한다(도 39의 3905). 여기서, 소스 노드(302)는 제어기(300)로부터의 상기 지시에 대한 응답을 반환한다.단계(S4003)에서, 소스 노드(302)는 오브젝트 데이타(308)의 데이타 크기를 행선지 노드(304)에게 통지한다 (도 39의 3906). 행선지 노드(304)는 이 데이타 크기를 도 6에 도시된 CSR 공간 내의 특정 영역에 저장한다.
단계(S4004)에서, 행선지 노드(304)는 수신 버퍼의 크기와 1 비동기 패킷으로 수신가능한 데이타 크기(즉, 패이 로드 크기)를 통신하다 (도 39의 3907). 소스 노드(302)는 수신 버퍼 크기와 페이 로드 크기를 도 6에 도시된 CSR 공간의 특정 영역에 저장한다.
단계(S4005)에서, 소스 노드(302)는 오브젝트 데이타(308)를 수신 버퍼 크기와 레이 로드 크기에 따라 특정 크기의 각각의 세그먼트로 분할하고, 이 세그먼트를 하나 이상의 비동기 패킷들로 패킷화하고, 이들을 순차적으로 행선지 노드(304)에 전송한다 (도 39의 3908). 하나의 세그먼트 전송이 완료된 후, 소스 노드(302)는 행선지 노드(304)에 의해 하나의 세그먼트 전송이 완료되었음을 통지받을 때까지 다음 세그먼트 전송을 대기한다.
여기서, 비동기 패킷들 각각에는, 행선지 노드(304)에 제공된 수신 버퍼의 특정 영역을 지정하는 오프셋 어드레스가 저장되어 있다. 예를 들어, 각각의 세그먼트의 제1 비동기 패킷에는, 소스 노드(302)에 의해 통지된 수신 버퍼의 헤더 어드레스가 저장된다. 또한, 후속되는 비동기 패킷들에는, 수신 버퍼들의 특정 영역들을 순차적으로 지정하는 오프셋 어드레스들이 저장된다.
단계(S4006)에서, 하나의 세그먼트부의 비동기 전송이 완료된 후, 행선지 노드(304)는 하나의 세그먼트부의 전송이 완료되었음을 소스 노드(302)에 통지한다 (도 39의 3909).
단계(S4007)에서, 행선지 노드(304)는 다음 세그먼트를 수신하기 위해 새로이 확보될 수 있는 수신 버퍼의 크기를 소스 노드(302)에 통지한다(도 39의 3910). 소스 노드(302)는 수신 버퍼 크기를 CSR 공간 내의 특정 영역상에 저장하고, 이와 동시에, 이 수신 버퍼 크기 및 페이 로드 크기에 따라 다음에 전송되는 세그먼트의 크기를 설정한다.
상술한 절차를 실행하여, 오브젝트 데이타(308)의 하나의 세그먼트의 전송이 완료된다.
다음 세그먼트의 전송이 개시되면, 제어기(300), 소스 노드(302), 및 행선지 노드(304)는 단지 도 39의 절차 단계들(3904 내지 3910)을 반복해야 한다 (단계 S4008). 이때, 소스 노드(302)는 하나의 세그먼트 전송이 완료될 때마다 행선지 노드(304)로부터 통지된 새로운 수신 버퍼 크기를 수신하고, 수신된 크기에 따라 다음에 전송될 세그먼트의 크기를 결정한다. 하나의 오브젝트 데이타(308)의 전송이 완료된 것에 후속하여, 소스 노드(302)는 전송 완료를 제어기(300)에 통지한다 (도 39의 3911).
또한, 행선지 노드(304)는 하나의 오브젝트 데이타(308)가 수신이 완료되었음을 제어기(300)에 통지한다 (도 39의 3912).
상술한 절차를 사용하여, 전송 단계(3305)가 완료된다.
접속 해제 단계(3306)에서, 제어기(300)는 소스 노드(302)와 행선지 노드(304)에 의해 통신 완료의 통지를 받으면 그의 관리하에 있는 행선지 노드(304)의 수신 버퍼를 해제하고(도 39의 3913), 또한, 그의 관리하에 있는 소스 노드(302)의 전송 버퍼를 해제한다(도 39의 3914).
상술한 바와 같이, 제7 실시예에 따르면, 오브젝트 데이타(308)의 하나의 세그먼트 전송이 완료되면, 행선지 노드(304)는 새로운 버퍼 크기를 소스 노드(302)에 통지하도록 제어되어, 각각의 세그먼트에 대한 데이타의 양은 적당히 설정할 수 있다.
또한, 제7 실시예에 따르면, 제어기(300)가 오브젝트 데이타(308)의 통신 동안 변경된 행선지 노드(304)의 수신 버퍼의 크기를 관리할 필요가 없다. 이에 따라, 이 크기가 소스 노드(302)와 행선지 노드(304) 사이에서 관리될 수 있다. 이러한 방식으로, 제5 실시예와 비교할 때, 제어기(300)의 부하가 작아질 수 있다.
또한, 제7 실시예에 따르면, 소스 노드(302)와 행선지 노드(304) 사이에 접속이 설정된 후, 각각의 세그먼트에 대한 크기의 설정과 각각의 세그먼트의 전송이 소스 노드(302)와 행선지 노드(304) 사이에서 그 실행을 위해 제어될 수 있다. 그러므로, 제5 및 제6 실시예와 비교할 때, 제어기(300)에 가해지는 부하를 감소시키고 통신 절차를 더 간단하게 만들 수 있다.
(제8 실시예)
상술한 제7 실시예에서와 같이, 본 발명의 제8 실시예에 따른 통신 프로토콜이 설명될 것이다. 제8 실시예에 따르면, 제어기(300)가 소스 노드(302)와 행선지 노드(304) 사이의 접속을 설정하고, 그 후, 소스 노드(302)와 행선지 노드(304) 사이의 각 세그먼트의 전송이 제어기(300)의 개입없이 제어된다.
이하, 도 2에 도시된 통신 시스템에 제8 실시예의 통신 프로토콜이 적용되는 경우에 대해 설명될 것이다. 제8 실시예에 있어서, 제어기(300)는 컴퓨터(10)이고, 소스 노드(302)는 DVCR(28)이고, 행선지 노드(304)는 프린터(60)인 것으로 가정한다.
제8 실시예에 따르면, 소스 노드(302)는 도 34에 도시된 하나의 오브젝트 데이타(이미지 데이타, 오디오 데이타, 그래픽 데이타, 및 텍스트 데이타 등)를 특정한 크기의 개개의 세그먼트로 분할한 다음, 이러한 세그먼트를 고정된 길이를 갖는 하나 이상의 데이타로서 비동기적으로 전송한다.
또한, 행선지 노드(304)는 소스 노드(302)로부터 전송된 하나 이상의 비동기 패킷들을 비동기적으로 수신하고 비동기 패킷들 내에 포함된 고정 길이의 데이타를 수신 버퍼에 순차적으로 저장한다. 여기서, 행선지 노드(304)의 수신 버퍼는 행선지 노드(304)에 제공된 CSR(제어 및 상태 레지스터)의 공간 내에 확보된다.
세그먼트들 각각은 각각의 비동기 패킷들 내에 포함된 오프셋 어드레스에 의해 지정된 CSR 공간 내의 특정 영역상에 기록된다. 행선지 노드(304)는 CSR 공간 내의 특정 영역에 기록이 행해질 때마다 하나의 세그먼트부를 내부 메모리 상에 저장한다.
이하, 도 42 및 도 43을 참조하여, 소스 노드(302)와 행선지 노드(304)에 제공된 버퍼들의 구조가 상세히 설명될 것이다.
도 42 및 도 43에서, 소스 노드(302)에는 하나의 수신 버퍼, 즉 '소스 버퍼 1'이 제공된다. 여기서, 소스 버퍼 1은 소스 노드(302)에 제공된 CSR 공간 내의 특정 영역 상에 확보된다.
또한, 도 42 및 도 43에서, 행선지 노드(304)는 두개의 수신 버퍼들, 즉 '행선지 버퍼1' 및 '행선지 버퍼 2'를 구비한다. 여기서, 행선지 버퍼1과 행선지 버퍼2는 행선지 노드(304)에 제공된 CSR 공간 내의 특정 영역상에 확보된다.
소스 버퍼1, 행선지 버퍼1, 행선지 버퍼2의 크기들은 다음과 같이 정의된다.
먼저, 제8 실시예에 따르면, 행선지 버퍼1과 행선지 버퍼2의 크기들은 다음과 같이 정의된다:
여기서, 행선지 버퍼2는 하나의 세그먼트의 크기에 대응한다. 또한, N은 정수로서, 하나의 세그먼트를 형성하는 세그먼트 데이타의 수를 나타낸다.
여기서, 'max_rec'은 IEEE 1394-1995 표준에 기초한 비동기 기록 트랜잭션에 따라 수신가능한 비동기 패킷을 수신할 수 있는 행선지 노드(304)의 페이 로드 크기의 최대값을 의미한다. 이에 관해, 'max_rec'의 크기는 대응하는 행선지 노드(304)의 최대 데이타 전송 속도에 따라 다르다. 'max_rec'는 다음과 같이 정의된다:
여기서, L은 정수이다.
수학식 1 및 수학식 2로부터, 행선지 버퍼1과 행선지 버퍼2 사이의 관계는 다음과 같이 된다:
또한, 제8 실시예에 따라, 소스 버퍼1은 다음과 같이 정의된다:
수학식 5에서, 소스 버퍼1은 전송될 수 있는 소스 노드(302)의 비동기 패킷의 페이로드 크기의 최대값을 나타낸다. 이에 관해, 소스 버퍼1의 크기는 대응하는 소스 노드(302)의 최대 데이타 전송 속도에 따라 다르다. 여기서, M은 정수이다.
수학식 3과 수학식 5로부터, max_rec와 소스 버퍼1 사이의 관계는 다음 수학식 6과 같이 된다:
다음에, max_rec은:
수학식 7과 수학식 1로부터, 행선지 버퍼2는:
수학식 8로부터, 소스 노드(302)가 페이 로드 크기가 소스 버퍼1의 (2L-M)×N배의 크기인 비동기 패킷을 전송할 때 행선지 버퍼2가 채워진다.
이와 같은 정의에 의해, 행선지 버퍼 2의 크기는 소스 버퍼 1의 크기와 행선지 버퍼 1의 크기에 의해 결정될 수 있다.예를 들어, 도 42에서 소스 버퍼(1) = 행선지 버퍼(1)(=max_rec)인 경우, M=L이다. 이 경우에, 행선지 버퍼(2)의 크기는 소스 버퍼(1)의 크기의 N배가 된다. 그 결과, N값을 설정하여 각 세그먼트의 크기를 가변으로 제어할 수 있게 된다.
또한, 도 42에서 소스 버퍼(1) > 행선지 버퍼(1)(=max_rec)인 경우, M > L이다. 이 경우에, 소스 노드(302)는 행선지 버퍼(1)의 크기와 같아지도록 소스 버퍼(1)의 크기를 설정한다. 이와 같은 방식으로, 행선지 버퍼(2)의 크기는 소스 버퍼(1) 크기의 N배가 된다. 그 결과, N값을 설정함으로써 각 세그먼트의 크기를 가변으로 제어할 수 있게 된다.
또한, 도 43에서 소스 버퍼(1) < 행선지 버퍼(1)(=max_rec)인 경우, M < L이다. 이 경우에, 소스 노드(304)는 소스 버퍼(1)의 크기와 같아지도록 행선지 버퍼(1)의 크기를 설정한다. 이와 같은 방식으로, 행선지 버퍼(2)의 크기는 소스 버퍼(1) 크기의 [{2(L-M)}×N]배가 된다. 그러므로, M, N 및 L 값들을 설정하여, 각 세그먼트의 크기를 가변으로 제어할 수 있게 된다.
또한, 제8 실시예에 따르면, 제어기(300)는 소스 노드(302)에의 지시에 따라 소스 노드(302)와 행선지 노드(304)간의 접속을 관리하고, 행선지 노드(304)를 관리하여 버퍼 영역들을 해제하도록 하거나 지정 데이타(308)의 전송을 개시하게 한다.
본 발명의 제8 실시예에 따른 통신 프로토콜에 대하여 이하에서 설명한다.
도 41은 제8 실시예에 따른 통신 프로토콜을 상세히 도시하는 순서도이다.
제5 실시예의 통신 프로토콜에서와 같이, 제8 실시예의 통신 프로토콜은 3가지 단계, 즉 접속 단계, 전송 단계 및 접속 단계로 형성된다.
우선, 접속 단계(3304)를 설명한다.
(1) 도 41에 도시된 절차(4104)의 설명
제어기(300)는 행선지 노드(304)에 애플리케이션 CTS(명령 제어 설정) 명령(도 41에 도시된 'SubUnit Appli Cmd')을 보내고, 수신이 준비되도록 행선지 노드(304)에 제공된 서브유닛을 제어한다. 제8 실시예에 있어서, 행선지 노드(304)는 프린터(60)이다. 그러므로, 제어기(300)는 CTS 명령의 형태의 프린트 명령을 프린터(60)에 제공된 프린터 유닛으로 보낸다.
행선지 노드(304)는 두개의 수신 버퍼, 즉 도 42 및 43에 도시된 행선지 버퍼(1)와 행선지 버퍼(2)를 구비한다. 애플리케이션 CTS 명령을 수신한 행선지 노드(304)는 행선지 버퍼(1)와 행선지 버퍼(2)를 초기화하며, 또한 서브유닛에 제공된 애플리케이션 메모리를 초기화한다. 서브유닛이 전송을 수신할 준비가 되면, Interim 응답(interim response)(도 41에 도시된 'SubUnit Appli Resp')이 CTS 명령의 형태로 제어기(300)로 반환된다.
(2) 도 41에 도시된 절차(4105)의 설명
다음으로, 제어기(300)는 소스 노드(302)로 애플리케이션 CTS 명령(도 41에 도시된 'SubUnit Appli Cmd')을 보내서 전송이 준비되도록 소스 노드(302)에 제공된 서브유닛을 제어한다. 제8 실시예에 있어서, 소스 노드(302)는 DVCR(28)이다. 그러므로, 제어기(300)는 재생 명령을 CTS 명령의 형태로 DVCR(28)에 제공된 캠코더 유닛으로 보낸다.
소스 노드(302)에는 도 42 및 43에 도시된 소스 버퍼(1)가 구비된다. 애플리케이션 CTS 명령을 수신한 소스 노드(302)는 소스 버퍼(1)를 초기화한다. 서브유닛이 전송 준비가 되면, Interim 응답(도 41에 도시된 'SubUnit Appli Resp')이 CTS 명령의 형태로 제어기(300)로 반환된다.
다음으로, 전송 단계(3305)를 이하에서 설명한다.
(3) 도 41에 도시된 절차(4106)의 설명
Interim 응답을 전송한 소스 노드(302)는 서브유닛의 애플리케이션 메모리에 저장된 1 오브젝트 데이타(308)의 전송을 준비하고, 이 준비의 완료를 행선지 노드(304)에 통지한다.
전송 준비의 완료가 IEEE 1394-1995 표준에 기초한 비동기 기록 트랜잭션을 사용하여 통지되면, 소스 노드(302)는 행선지 노드(304)에 제공된 특정 레지스터에 전송 준비의 완료를 표시하는 '전송 준비' 정보를 기록한다. 이와 같은 관점에서, 상기한 M값은 '전송 준비' 정보에 포함된다.
여기서는, 특정 레지스터가 행선지 노드(304)에 제공된 CSR 공간 내의 특정 어드레스에 설정된다. 그러므로, 소스 노드(302)는 이와 같은 특정 어드레스를 지정하는 비동기 기록 트랜잭션을 사용하여 '전송 준비' 정보를 기록한다.
또한, 제8 실시예에 따르면, 특정 레지스터 상에 '전송 준비' 정보를 기록하는 프로세스에 대해 설명하였지만, 이는 이와 같은 레지스터의 특정 필드에 '전송 준비' 을 표시하는 플래그를 설정함으로써 플래그를 재기록할 수 있다.
(4) 도 41에 도시된 절차(4107)의 설명
Interim 응답을 전송하고 소스 노드(302)로부터 '전송 준비' 정보를 수신한 행선지 노드(304)는 소스 노드(302)에 제공된 레지스터 상에 '전송 준비' 정보와 행선지 버퍼들(1 및 2)에 관한 정보를 기록한다.
여기서, 행선지 버퍼(1)에 관한 정보는, 전송을 수신할 수 있으며 상기한 L값 및 M값에 의해 설정될 수 있는 행선지 노드의 페이 로드 크기의 최대치이며, 또한 세그먼트 데이타의 크기를 나타내는 정보이다. 또한, 행선지 버퍼(2)에 관한 정보는 상기한 N값에 의해 설정된 세그먼트의 크기를 표시하는 것이다. 여기서, 세그먼트의 크기는 세그먼트 데이타 크기의 N배가 되도록 설정된다. 또한, 행선지 노드(304)는 각 세그먼트들에 따라서 가변적으로 N값을 설정할 수 있다.
여기서, 특정 레지스터는 소스 노드(302)에 제공된 CSR 공간 내의 특정 어드레스에 설정된다. 그러므로, 행선지 노드(304)는 이와 같은 특정 어드레스를 지정하는 비동기 기록 트랜잭션을 사용하여 이와 같은 일련의 정보를 기록한다.
(5) 도 41에 도시된 절차(4108)의 설명
행선지 노드(304)로부터 '전송 준비' 정보를 수신한 후에, 소스 노드(302)는 행선지 버퍼들(1 및 2)을 사용하여 오브젝트 데이타(308)를 N개의 세그먼트 데이타로 분할한다.
소스 버퍼(1) 상에 각 세그먼트를 저장한 후에, 소스 노드(302)는 비동기 기록 트랜잭션을 사용하여 순차적으로 각 세그먼트들을 전송한다.
여기서, 각각의 세그먼트들은 CSR 공간 내에 확보된 행선지 버퍼(1) 상에 연속적으로 기록된다. 행선지 버퍼(1) 상에 기록된 세그먼트 데이타는 다음 세그먼트 데이타가 수신되기 전에 행선지 버퍼(2) 상에 저장된다. 각 세그먼트 데이타의 전송은 행선지 노드(304)에 확보된 행선지 버퍼(2)가 채워질 때 까지 실행된다.
(6) 도 41에 도시된 절차(4109)의 설명
N개의 세그먼트 데이타를 전송한 후에, 소스 노드(302)는 도 41에 도시된 '세그먼트 종료'를 행선지 노드(304)로 전송한다. '세그먼트 종료' 정보는 '전송 준비' 정보가 기록되는 레지스터 상에 비동기 기록 트랜잭션을 사용하여 기록된다.
이와 같은 관점에서, 1 오브젝트 데이타(308)를 형성하는 모든 세그먼트들이 완전하게 전송되면, 소스 노드(302)는 행선지 버퍼(2)가 완전히 점유되지 않을 지라도 도 41에 도시된 '데이타 종료' 정보를 행선지 노드(304)로 전송한다. '데이타 종료' 정보는 '전송 준비' 정보가 기록되는 레지스터 상에 비동기 기록 트랜잭션을 사용하여 기록된다.
(7) 도 41에 도시된 절차(4110)의 설명
'세그먼트 종료' 정보를 수신한 후에, 행선지 노드(304) 및 그 서브유닛은 1 세그먼트(N개의 고정 길이 데이타에 의해 형성됨)의 전송의 완료를 인지한다.
행선지 노드(304)는 행선지 버퍼(2) 상에 기억된 N개의 세그먼트 데이타를 서브유닛 내부의 애플리케이션 메모리 영역 상에 저장한다. 그 후, 행선지 노드(304)는 소스 노드(302)에 제공된 특정 레지스터 상에 비동기 기록 트랜잭션을 사용하여 '수신 준비' 정보를 기록한다.
'수신 준비' 정보를 수신한 후, 소스 노드(302)는 다음 세그먼트의 전송 준비의 완료 후에 다시 도 41에 도시된 절차적 단계들(4106 내지 4110)을 실행하고, 행선지 버퍼(2)부에 대응하는 데이타를 전송한다.
또한, '데이타 종료' 정보가 수신되면, 행선지 노드(304)는 1 오브젝트 데이타(308)를 형성하는 모든 세그먼트들의 전송의 완료를 인지한다. 그 후, 행선지 노드(304)는 도 41에 도시된 'end of conf'를 소스 노드(302)로 전송한다. '데이타 종료' 정보는 '전송 준비' 정보가 기록되는 레지스터 상에 비동기 기록 트랜잭션을 사용하여 기록된다.
상술한 바와 같이, 전송 단계가 완료된다.
이하에서는, 접속 해제 단계(3306)에 대하여 설명한다.
(8) 도 41에 도시된 절차(4111)의 설명
'end of conf' 정보를 수신한 후, 소스 노드(302)는 1 오브젝트 데이타(308)를 형성하는 모든 세그먼트들의 전송의 완료를 제어기(300)에 통지한다. 이 통지는 CTS 명령의 형태로 '허용 응답'을 사용하여 행해진다.
(9) 도 41에 도시된 절차(4112)의 설명'end of conf' 정보를 전송한 후, 행선지 노드(304)는 1 오브젝트 데이타(308)를 형성하는 모든 세그먼트들의 수신의 완료를 제어기(300)에 통지한다. 이 통지는 CTS 명령의 형태로 '허용 응답'을 사용하여 행해진다.
상술한 바와 같이, 제8 실시예에 따르면, 소스 버퍼(1), 행선지 버퍼(1) 및행선지 버퍼(2)간의 관계가 정의된다. 그 결과, 행선지 노드(304)가 소스 노드(302)에 의해 통지된 M값 및 N과 M값들에 따라서 각 세그먼트의 크기를 가변적으로 설정하는 것이 가능하게 된다. 또한, 각 세그먼트의 크기의 결정하는 계산을 보다 용이하게 할 수 있다.
또한, 제8 실시예에 따르면, 제어가 행선지 노드(304)를 인에이블하여 1 세그먼트 데이타(308)의 전송이 완료될 때마다 새로운 버퍼 크기를 소스 노드(302)에 통지하게 한다. 이와 같이, 각 세그먼트의 데이타 양을 적절히 설정하는 것이 가능하게 된다.
또한, 제8 실시예에 따르면, 제7 실시예에서와 같이 제어기(300)가 오브젝트 데이타(308)의 통신동안 변화된 행선지 노드(304)의 수신 버퍼 크기를 관리할 필요가 없다. 그 결과, 이와 같은 관리가 소스 노드(302)와 행선지 노드(304)간에 가능해져서, 제5 실시예와 비교해 제어기에의 부하가 상당히 감소하게 된다.
또한, 제8 실시예에 따르면, 각 세그먼트의 크기 설정 및 그 전송은 소스 노드(302)와 행선지 노드(304)간의 접속이 설정된 후에 소스 노드(302)와 행선지 노드(304)간에 제어되어 실행될 수 있다. 따라서, 제5 및 6 실시예와 비교해, 제어기에의 부하가 통신 절차가 보다 간단해지도록 감소하게 된다.
또한, 제8 실시예에 따르면, 각 세그먼트의 크기는 전송을 수신할 수 있는 행선지 노드(304)의 페이 로드 크기의 정수배가 되도록 설정된다. 다음으로, 소스 노드(302)로부터 전송된 다수의 패킷들을 관리하므로써, 각 세그먼트의 전송을 관리하고 소스 노드(302)의 전송을 더 용이하게 하는 것이 가능하게 된다.
또한, 제8 실시예에 따르면, 행선지 노드(304)의 수신 버퍼의 크기는 전송을 수신할 수 있는 행선지 노드(304)의 페이 로드 크기의 정수배가 되도록 설정된다. 따라서, 행선지 노드(304)에 의해 확보된 수신 버퍼를 효과적으로 사용하는 것이 가능하게 되며, 동시에 어드레스가 각 세그먼트들 상에 기록되도록 제어하는 것이 용이하게 된다.
(기타 실시예들)
상술한 실시예들 및 그 구현들 각각에 따라서 설명된 통신 프로토콜에 필요한 다양한 프로세싱 동작들의 경우, 소프트웨어에 의해 그것들을 구현하는 것이 가능해질 수 있다.
예를 들어, 상술한 각각의 실시예들의 기능을 구현하기 위한 프로그래밍 코드들을 위에 저장하는 저장 매체가 각 실시예의 통신 시스템을 형성하는 장비의 제어 유닛(도 2에서의 MPU(12), 시스템 제어기(50) 및 프린터 제어기(68))에 제공되도록 구조가 배치된다. 다음으로, 제어 유닛을 인에이블시켜 저장 매체 상에 이와 같이 저장된 프로그래밍 코드들을 독출하고 프로그래밍 코드들에 따라서 각 실시예의 기능을 실현하도록 통신 시스템 또는 장비 자체의 동작을 제어하도록 배열된다. 이와 같은 배치로서, 상기 각 실시예들이 구현될 수 있다.
또한, 각 실시예의 기능을 구현하도록 프로그램 코드들이 저장된 저장 매체가 각 장비에 대하여 배치된 1394 인터페이스들(14, 44 및 62)에 제공된 다음, 1394 인터페이스들(14, 44 및 62)의 동작을 제어하는 제어 유닛(도 8에서의 직렬 버스 관리(806) 등)이 저장 매체 상에 저장된 프로그래밍 코드들에 따라서 각 실시예의 기능들을 구현하도록 처리 동작을 제어할 수 있는 구조로 배열될 수 있다.
이와 같은 경우에, 저장 매체 자체로부터 독출된 프로그래밍 코드들은 각 실시예의 기능들을 구현한다. 그러므로, 프로그래밍 코드들 자체 및 프로그래밍 코드들을 제어 유닛(예를 들어, 저장 매체 자체)에 공급하기 위한 수단은 본 발명을 구성한다.
이와 같은 프로그래밍 코드들을 저장하는 저장 매체로서, 예를 들어 플로피 디스크, 하드 디스크, 광 디스크, 광자기 디스크, CD-ROM, 자기 테이프, 비휘발성 메모리 카드 및 ROM 등이 있다.
또한, 상기 저장 매체로부터 독출된 프로그래밍 코드들이 상술한 제어 유닛에서 동작하는 운영체제나 다양한 애플리케이션 소프트웨어들과 협동하여 각 실시예의 기능들을 구현할 때 본 발명에 당연히 포함된다.
또한, 상술한 저장 매체로부터 독출된 프로그래밍 코드들이 상술한 제어 유닛에 접속된 확장 기능 유닛에 제공된 메모리 상에 저장되고, 이와 같은 확장된 기능 유닛에 제공된 제어 유닛이 상술한 메모리 상에 저장된 프로그래밍 코드들에 따라서 실제 프로세스를 부분적으로 또는 전체적으로 실행하는 경우에, 각 실시예의 기능들이 이와 같은 프로세스의 실행에 의해 구현될 때 본 발명에 당연히 포함된다.
상술한 바와 같이, 각 실시예들에 따르면, 본 발명은 IEEE 1394-1995 표준에 의해 형성된 것과 같은 버스형 네트워크 상에서, 물리적 접속 모드에 의존하지 않는 논리적 접속 관계를 구성하는 것이 가능하다.
또한, 상술한 각 실시예들에 따르면, 본 발명은 실시간 능력이 아닌 신뢰도를 요구하는 비교적 상당한 양의 데이타인 오브젝트 데이타(정지 화상 데이타, 그래픽 데이타, 텍스트 데이타, 파일 데이타 및 프로그램 데이타 등)가 IEEE 1394-1995 규칙에 기초한 통신 시스템 하에서 하나 이상의 세그먼트 데이타로 분할되어 연속적으로 전송될 수 있는 새로운 통신 프로토콜을 완벽하게 제공할 수 있다.
또한, 각 실시예들에 따르면, 본 발명은 여기서 데이타 통신이 IEEE 1394-1995 표준에 기초한 통신 시스템 하에서 데이타를 비동기적으로 방송하는 통신 방법을 사용하여 복수의 장비 사이에 실현될 수 있는 새로운 통신 프로토콜을 완벽하게 제공하는 것이 가능하다.
또한, 각 실시예들에 따르면, 본 발명은 IEEE 1394-1995 표준의 동기 전송 방법을 사용하지 않고 연속성을 갖는 복수의 데이타를 신뢰도 있게 전송할 수 있다. 또한, 하나의 오브젝트 데이타를 복수의 데이타로 분할하여 신뢰도 있게 전송하는 것도 가능하다.
또한, 각 실시예들에 따르면, 본 발명은 데이타 전송이 버스 리셋 또는 전송 오류에 기인하여 중지된 경우에 손실되는 세그먼트 데이타를 인지하고, 상당히 복잡한 통신 절차들을 사용하지 않고도 전송을 재개할 수 있다.
또한, 논리적 접속 관계를 사용하는 데이타 통신의 경우, 소스 노드가 순차적으로 전송하는 패킷의 크기 및 각 행선지 노드들의 수신 버퍼의 크기를 최적으로 설정할 수 있는 통신 시스템 및 통신 프로토콜을 구현하는 것이 가능하다.
이와 같은 관점에서, 본 발명은 본 발명의 사상이나 중요한 특징에서 벗어남이 없이 다른 특정한 형태로 구현되는 것이 가능하다.
예를 들어, 상기는 IEEE 1394-1995 표준에 기초한 네트워크에 적용 가능한 통신 프로토콜에 대하여 설명되었지만, 본 발명은 그것에만 제한되는 것은 아니다. 본 발명을 실시하는 통신 프로토콜은 IEEE 1394-1995 표준에 기초한 버스형 네트워크를 형성할 수 있는 네크워크 및, 버스형 네트워크를 가상적으로 형성하는 네크워크에도 적용할 수도 있다.
그러므로, 상술한 실시예들은 모든 관점에 대한 단순한 실시예들일 뿐이며, 본 발명을 한정하도록 간주되어서는 안된다.
본 발명의 범위는 첨부된 청구항들의 범위에 의해 정의되며, 본 상세한 설명의 특정 설명에 의해서만 제한되지는 않는다. 또한, 본 청구항들과 등가에 속하는 모든 수정 및 변경들은 본 발명의 범위 내에 포함되는 것으로 고려되어야 한다.

Claims (33)

  1. 데이타 통신 시스템에 있어서,
    하나 이상의 행선지 노드와 소스 노드 사이에 설정된 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 비동기적으로 전송하기 위한 소스 노드; 및
    상기 소스 노드와 상기 하나 이상의 행선지 노드 사이에 논리적 접속 관계를 설정하기 위한 제어기를 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정되는 것을 특징으로 하는 데이타 통신 시스템.
  2. 제1항에 있어서, 상기 소스 노드는 비동기 전송을 연속해서 수행하는 것을 특징으로 하는 데이타 통신 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 하나 이상의 행선지 노드는 상기 비동기 전송에 대한 응답을 반환하는 것을 특징으로 하는 데이타 통신 시스템.
  4. 제1항에 있어서, 상기 논리적 접속 관계는 상기 제어기에 의해 설정된 접속 ID에 의해 식별되는 것을 특징으로 하는 데이타 통신 시스템.
  5. 제1항에 있어서, 상기 논리적 접속 관계는 각각의 제어기에 고유한 정보에 의해 식별되는 것을 특징으로 하는 데이타 통신 시스템.
  6. 제4항에 있어서, 상기 논리적 접속 관계는 특정 채널 번호에 의해 식별되는 것을 특징으로 하는 데이타 통신 시스템.
  7. 제1항에 있어서, 상기 논리적 접속 관계는 상기 오브젝트 데이타의 전송후 상기 제어기 또는 상기 행선지 노드에 의해 해제되는 것을 특징으로 하는 데이타 통신 시스템.
  8. 제1항에 있어서, 상기 세그먼트의 크기는 한번의 비동기 전송에 의해 상기 행선지 노드에 의해 처리 가능한 데이타 량에 따라 설정되는 것을 특징으로 하는 데이타 통신 시스템.
  9. 제1항에 있어서, 상기 세그먼트의 크기는 한번의 비동기 전송에 의해 상기 행선지 노드에 의해 처리가능한 데이타 량의 정수배인 것을 특징으로 하는 데이타 통신 시스템.
  10. 제1항에 있어서, 상기 세그먼트의 크기는 행선지 노드의 수신 용량의 최저 수신 용량에 따라 설정되는 것을 특징으로 하는 데이타 통신 시스템.
  11. 제1항에 있어서, 상기 세그먼트의 크기는 세그먼트마다 가변하는 것을 특징으로 하는 데이타 통신 시스템.
  12. 제1항에 있어서, 상기 하나 이상의 행선지 노드는 상기 소스 노드에게 비동기 전송으로 초기 설정하는데 필요한 초기화 정보를 통지하는 것을 특징으로 하는 데이타 통신 시스템.
  13. 제12항에 있어서, 상기 소스 노드는 상기 초기화 정보에 따라 비동기 전송하기 위한 초기화 설정을 수행하는 것을 특징으로 하는 데이타 통신 시스템.
  14. 제13항에 있어서, 상기 소스 노드는 하나 이상의 행선지 노드, 수신 버퍼의 크기, 및 세그먼트의 크기를 갖는 공통 메모리 공간을 지정하는 행선지 어드레스중의 적어도 하나를 설정하는 것을 특징으로 하는 데이타 통신 시스템.
  15. 제1항에 있어서, 상기 소스 노드는 비동기 전송을 사용하여 오브젝트 데이타를 방송하는 것을 특징으로 하는 데이타 통신 시스템.
  16. 제1항에 있어서, 상기 소스 노드는 상기 비동기 전송을 사용하여 상기 하나 이상의 행선지 노드에 제공된 상기 공통 메모리 공간에 오브젝트 데이타를 기록하는 것을 특징으로 하는 데이타 통신 시스템.
  17. 제1항에 있어서, 상기 하나 이상의 행선지 노드는 각각의 행선지 노드에 제공된 상기 공통 메모리 공간에 상기 데이타를 기억시키는 것을 특징으로 하는 데이타 통신 시스템.
  18. 제1항에 있어서, 상기 비동기 전송은 IEEE 1394-1995 표준인 비동기 전송 방법에 기초한 것을 특징으로 하는 데이타 통신 시스템.
  19. 제1항에 있어서, 상기 비동기 전송은 IEEE 1394-1995 표준인 비동기 스트리밍 전송 방법에 기초한 것을 특징으로 하는 데이타 통신 시스템.
  20. 제1항에 있어서, 상기 데이타 통신 시스템은 버스형 네트워크인 것을 특징으로 하는 데이타 통신 시스템.
  21. 제1항에 있어서, 상기 데이타 통신 시스템은 IEEE 1394-1995 표준에 근거한 네트워크인 것을 특징으로 하는 데이타 통신 시스템.
  22. 제1항에 있어서, 상기 하나 이상의 세그먼트를 갖는 데이타는 정지 화상 데이타, 그래픽 데이타, 텍스트 데이타, 파일 데이타 및 프로그램 데이타중의 적어도 하나인 것을 특징으로 하는 데이타 통신 시스템.
  23. 데이타 통신 시스템에 있어서,
    하나 이상의 행선지 노드들과 소스 노드 간에 설정된 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 방송하기 위한 소스 노드; 및
    상기 논리적 접속 관계를 이용하여 상기 소스 노드로부터 방송된 오브젝트 데이타를 수신하기 위한 하나 이상의 행선지 노드를 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정되는 것을 특징으로 하는 데이타 통신 시스템.
  24. 데이타 통신 방법에 있어서,
    소스 노드와 하나 이상의 행선지 노드간에 논리적 접속 관계를 설정하는 단계; 및
    상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 비동기적으로 전송하는 단계를 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정되는 것을 특징으로 하는 데이타 통신 방법.
  25. 데이타 통신 방법에 있어서,
    하나 이상의 행선지 노드와 설정된 논리적 접속 관계를 이용하여 소스 노드로부터 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 방송하는 단계; 및
    상기 논리적 접속관계를 이용하여 상기 소스 노드로부터 방송된 오브젝트 데이타를 수신하는 단계를 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정되는 것을 특징으로 하는 데이타 통신 방법.
  26. 데이타 통신 방법에 있어서,
    소스 노드와 하나 이상의 행선지 노드간에 논리적 접속 관계를 설정하는 단계; 및
    상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 비동기적으로 전송하는데 필요한 초기화 설정들 중의 일부를 설정하는 단계를 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정되는 것을 특징으로 하는 데이타 통신 방법.
  27. 데이타 통신 방법에 있어서,
    소스 노드와 하나 이상의 행선지 노드 간에 논리적 접속 관계를 설정하는 단계; 및
    상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 방송하는데 필요한 초기화 설정들 중의 일부를 설정하는 단계를 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정되는 것을 특징으로 하는 데이타 통신 방법.
  28. 데이타 통신 장치에 있어서,
    하나 이상의 행선지 노드와의 논리적 접속 관계를 설정하기 위한 수단; 및
    상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 비동기적으로 전송하기 위한 수단을 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정되는 것을 특징으로 하는 데이타 통신 장치.
  29. 데이타 통신 장치에 있어서,
    소스 노드와 하나 이상의 행선지 노드간에 논리적 접속 관계를 설정하기 위한 수단; 및
    상기 논리적 접속 관계를 이용하여 비동기적으로 전송된 오브젝트 데이타 - 상기 오브젝트 데이타는 하나 이상의 세그먼트로 분할됨 - 를 수신하기 위한 수신 수단을 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라서 설정되는 것을 특징으로 하는 데이타 통신 장치.
  30. 데이타 통신 장치에 있어서,
    하나 이상의 행선지 노드와의 논리적 접속 관계를 설정하기 위한 수단; 및
    상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 방송하기 위한 수단을 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라 설정되는 것을 특징으로 하는 데이타 통신 장치.
  31. 데이타 통신 장치에 있어서,
    소스 노드와의 논리적 접속 관계를 설정하기 위한 수단; 및
    상기 논리적 접속 관계를 이용하여 방송된 오브젝트 데이타 - 상기 오브젝트 데이타는 하나 이상의 세그먼트로 분할됨 - 를 수신하기 위한 수신 수단을 포함하며,
    상기 세그먼트의 크기는 하나 이상의 행선지 노드의 수신 용량에 따라 설정되는 것을 특징으로 하는 데이타 통신 장치.
  32. 데이타 통신 장치에 있어서,
    소스 노드와 하나 이상의 행선지 노드간에 논리적 접속 관계를 설정하기 위한 수단; 및
    상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 비동기적으로 전송하는데 필요한 초기화 설정들 중의 일부를 설정하기 위한 수단을 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라설정되는 것을 특징으로 하는 데이타 통신 장치.
  33. 데이타 통신 장치에 있어서,
    소스 노드와 하나 이상의 행선지 노드간에 논리적 접속 관계를 설정하기 위한 수단; 및
    상기 논리적 접속 관계를 이용하여 하나 이상의 세그먼트로 분할된 오브젝트 데이타를 방송하는데 필요한 초기화 설정들 중의 일부를 설정하기 위한 수단을 포함하며,
    상기 세그먼트의 크기는 상기 하나 이상의 행선지 노드의 수신 용량에 따라설정되는 것을 특징으로 하는 데이타 통신 장치.
KR1019990006186A 1998-02-24 1999-02-24 데이타 통신 시스템, 데이타 통신 방법, 및 데이타 통신 장치 KR100294960B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP4265698 1998-02-24
JP1998-042656 1998-02-24
JP1998-057268 1998-03-09
JP05726898A JP3862403B2 (ja) 1998-03-09 1998-03-09 データ通信システムおよびデータ通信装置
JP10111681A JPH11308255A (ja) 1998-04-22 1998-04-22 データ通信システム、方法及び装置並びに記憶媒体
JP1998-111681 1998-04-22
JP1998-119727 1998-04-28
JP11972798A JP4046846B2 (ja) 1998-04-28 1998-04-28 データ通信システム及びデータ通信装置

Publications (2)

Publication Number Publication Date
KR19990072918A KR19990072918A (ko) 1999-09-27
KR100294960B1 true KR100294960B1 (ko) 2001-09-07

Family

ID=27461248

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990006186A KR100294960B1 (ko) 1998-02-24 1999-02-24 데이타 통신 시스템, 데이타 통신 방법, 및 데이타 통신 장치

Country Status (5)

Country Link
US (1) US7590133B2 (ko)
EP (1) EP0984601A3 (ko)
KR (1) KR100294960B1 (ko)
CN (1) CN1184787C (ko)
MY (1) MY135481A (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4366741B2 (ja) * 1998-12-22 2009-11-18 ソニー株式会社 ディジタル放送の受信装置及びディジタル信号処理機器の認識方法
KR100618967B1 (ko) * 1999-07-01 2006-08-31 삼성전자주식회사 디지털 인터페이스 연결 관리 방법
US7042896B1 (en) * 1999-07-26 2006-05-09 Samsung Electronics Co. Ltd. Method for managing a digital interface connection
US7068674B1 (en) * 1999-08-23 2006-06-27 Lg Electronics Inc. Method of controlling connection between nodes in digital interface
US6910090B1 (en) * 1999-09-21 2005-06-21 Sony Corporation Maintaining communications in a bus bridge interconnect
US6542538B2 (en) * 2000-01-10 2003-04-01 Qualcomm Incorporated Method and apparatus for testing wireless communication channels
JP3400772B2 (ja) * 2000-04-25 2003-04-28 松下電器産業株式会社 パケット送受信処理装置
JP2002009781A (ja) * 2000-06-19 2002-01-11 Matsushita Electric Ind Co Ltd 識別番号管理装置、識別番号管理システムおよび識別番号管理方法
TW536883B (en) * 2000-08-04 2003-06-11 Sony Corp Communication control method, communication system and communication device
US20020056047A1 (en) * 2000-09-15 2002-05-09 Lehman Larry L. System and method for communicating software debug, diagostic and maintenance information between devices
JP3800158B2 (ja) * 2002-09-27 2006-07-26 ブラザー工業株式会社 データ送信システム、端末装置、及びプログラム
GB2405773B (en) * 2003-09-02 2006-11-08 Siemens Ag A method of controlling provision of audio communication on a network
JP2005176233A (ja) * 2003-12-15 2005-06-30 Canon Inc 通信装置及び通信システム
US7853209B2 (en) * 2004-03-30 2010-12-14 Mitsubishi Denki Kabushiki Kaisha Mobile communication station, base station apparatus, and dedicated-short-range-communications system
US7944819B2 (en) * 2004-10-29 2011-05-17 Texas Instruments Incorporated System and method for transmission and acknowledgment of blocks of data frames in distributed wireless networks
JP4856400B2 (ja) * 2005-07-06 2012-01-18 ルネサスエレクトロニクス株式会社 記憶装置及び情報処理端末
US20070022198A1 (en) * 2005-07-19 2007-01-25 Samsung Electronics Co., Ltd. Method and system for pushing asynchronous notifications to networked devices
CN101110759A (zh) * 2006-07-20 2008-01-23 朗迅科技公司 用于因特网协议电视网络的对等文件下载系统
JP2008078768A (ja) * 2006-09-19 2008-04-03 Denso Corp ネットワークシステム,ネットワークデバイスおよびプログラム
WO2011054044A1 (en) * 2009-11-06 2011-05-12 Emue Holdings Pty Ltd A method and a system for validating identifiers
JP5535115B2 (ja) * 2011-03-29 2014-07-02 株式会社日立システムズ マルチスレッド型ファイル入出力システム、及びマルチスレッド型ファイル入出力プログラム
US20120320909A1 (en) * 2011-06-16 2012-12-20 Ziegler Michael L Sending request messages over designated communications channels
US9197529B2 (en) 2013-07-12 2015-11-24 Nicira, Inc. Tracing network packets through logical and physical networks
US9407580B2 (en) * 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9282019B2 (en) 2013-07-12 2016-03-08 Nicira, Inc. Tracing logical network packets through physical network
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
US10491525B2 (en) * 2015-03-10 2019-11-26 Huawei Technologies Co., Ltd. Traffic engineering feeder for packet switched networks
GB2530368B (en) * 2015-06-03 2016-08-10 Bridgeworks Ltd Transmitting data
US10200306B2 (en) 2017-03-07 2019-02-05 Nicira, Inc. Visualization of packet tracing operation results
TWI767997B (zh) * 2017-03-23 2022-06-21 日商索尼半導體解決方案公司 通信裝置、通信方法、程式及通信系統
US10785348B2 (en) * 2017-08-29 2020-09-22 Hewlett Packard Enterprise Development Lp Segment size determination
US10608887B2 (en) 2017-10-06 2020-03-31 Nicira, Inc. Using packet tracing tool to automatically execute packet capture operations
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
US11570090B2 (en) 2020-07-29 2023-01-31 Vmware, Inc. Flow tracing operation in container cluster
US11196628B1 (en) 2020-07-29 2021-12-07 Vmware, Inc. Monitoring container clusters
US11558426B2 (en) 2020-07-29 2023-01-17 Vmware, Inc. Connection tracking for container cluster
CN112583923B (zh) * 2020-12-16 2022-08-30 深圳数联天下智能科技有限公司 一种文件传输方法、设备和存储介质
US11736436B2 (en) 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
KR102588452B1 (ko) * 2021-03-05 2023-10-12 주식회사 핀텔 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법
US11687210B2 (en) 2021-07-05 2023-06-27 Vmware, Inc. Criteria-based expansion of group nodes in a network topology visualization
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US11706109B2 (en) 2021-09-17 2023-07-18 Vmware, Inc. Performance of traffic monitoring actions

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5282207A (en) * 1991-03-28 1994-01-25 Sprint International Communications Corp. Frame compression in integrated services networks
US5379296A (en) * 1992-12-31 1995-01-03 Unisys Corporation Method and apparatus for interfacing a workstation to a plurality of computer platforms
US5450406A (en) 1993-04-20 1995-09-12 Kabushiki Kaisha Toshiba ATM communication system with high speed connection-less service function
US5701301A (en) 1993-06-28 1997-12-23 Bellsouth Corporation Mediation of open advanced intelligent network in SS7 protocol open access environment
US5430719A (en) 1993-06-28 1995-07-04 Bellsouth Corporation Mediation of open advanced intelligent network interface by shared execution environment
JPH09501549A (ja) 1993-06-28 1997-02-10 ベルサウス コーポレイション 公衆加入電話網用開放型高度インテリジェント・ネットワーク・インタフェースの仲介
JPH0758806A (ja) 1993-08-17 1995-03-03 Fujitsu Ltd パケット通信システム
JPH0766811A (ja) 1993-08-25 1995-03-10 Toshiba Corp Atmセル化装置およびatmデセル化装置
JP3514793B2 (ja) 1993-09-29 2004-03-31 富士通株式会社 異種伝送路間のコネクションレス通信方式
US5519704A (en) 1994-04-21 1996-05-21 Cisco Systems, Inc. Reliable transport protocol for internetwork routing
JP3246200B2 (ja) 1994-06-24 2002-01-15 ソニー株式会社 データ通信方法及び電子機器
US5689244A (en) 1994-06-24 1997-11-18 Sony Corporation Communication system and electronic apparatus
US5583862A (en) 1995-03-28 1996-12-10 Bay Networks, Inc. Method and apparatus for routing for virtual networks
DE69631182T2 (de) 1995-04-28 2004-08-19 Matsushita Electric Industrial Co., Ltd., Kadoma Datenübertragungsverfahren
JPH0981334A (ja) 1995-09-19 1997-03-28 Canon Inc 情報処理装置並びに情報処理装置のデータ転送方法
JP3271493B2 (ja) 1995-09-26 2002-04-02 ヤマハ株式会社 ネットワークおよびデータ伝送方法
JPH0991100A (ja) 1995-09-28 1997-04-04 Tec Corp データ伝送制御装置
JP3618433B2 (ja) 1995-12-18 2005-02-09 株式会社野村総合研究所 データ配布システム
JP2865049B2 (ja) 1996-02-28 1999-03-08 日本電気株式会社 Atmネットワーク通信システム
US6081852A (en) * 1996-04-26 2000-06-27 Texas Instruments Incorporated Packet data transferring system for autonomously operating a DMA by autonomous boot mode select signal wherein the DMA is enabled to at least one program control list
JPH1031484A (ja) 1996-07-15 1998-02-03 Yamaha Corp ネットワークシステム
US6173330B1 (en) * 1996-09-17 2001-01-09 Motorola, Inc. Delivery and acquisition of data segments with optimized inter-arrival time
US5987030A (en) * 1996-09-27 1999-11-16 Cisco Technology, Inc. Transparent circuit emulation for packet switching network
US6185210B1 (en) * 1997-09-30 2001-02-06 Bbn Corporation Virtual circuit management for multi-point delivery in a network system
US6288743B1 (en) * 1997-10-20 2001-09-11 Eastman Kodak Company Electronic camera for processing image segments
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US7002964B1 (en) * 1998-02-24 2006-02-21 Canon Kabushiki Kaisha Communication system, method for a communication system and controller for a communication system
JP3445532B2 (ja) 1999-06-28 2003-09-08 株式会社東芝 Atm通信システム

Also Published As

Publication number Publication date
CN1184787C (zh) 2005-01-12
EP0984601A3 (en) 2009-06-24
KR19990072918A (ko) 1999-09-27
US7590133B2 (en) 2009-09-15
EP0984601A2 (en) 2000-03-08
CN1235462A (zh) 1999-11-17
MY135481A (en) 2008-04-30
US20030172201A1 (en) 2003-09-11

Similar Documents

Publication Publication Date Title
KR100294960B1 (ko) 데이타 통신 시스템, 데이타 통신 방법, 및 데이타 통신 장치
KR100311706B1 (ko) 데이터 통신 시스템, 데이터 통신 방법,데이터 통신 장치 및 디지털 인터페이스
US7430660B2 (en) Data transmission apparatus, system and method, and image processing apparatus
JPH10154996A (ja) ネットワーク接続装置及びネットワーク接続方法
EP0939529B1 (en) Destination node, data communication system, method of controlling a destination node and method of operating a data communication system
US7123621B1 (en) Data communication system, data communication method and data communication apparatus
KR100312276B1 (ko) 데이터 통신 시스템, 데이터 통신 방법, 데이터 통신 장치 및디지털 인터페이스
US6678769B1 (en) Control apparatus and method for managing a logical connection between source and destination nodes
KR100491675B1 (ko) 데이터 전송방법, 데이터 전송시스템, 데이터전송제어장치 및 프로그램 기록매체
US6832267B2 (en) Transmission method, transmission system, input unit, output unit and transmission control unit
JP3814407B2 (ja) データ通信システム、データ通信装置及びデータ通信方法
JP3943697B2 (ja) データ通信システム、データ通信装置及びデータ通信方法
JP3943698B2 (ja) データ通信システム及びデータ通信装置
JP3862403B2 (ja) データ通信システムおよびデータ通信装置
JPH11313091A (ja) データ通信システム、装置及び方法並びに記憶媒体
JP4143205B2 (ja) データ通信システム
JPH11261608A (ja) データ通信システム、データ通信装置、データ通信方法及び記憶媒体
JP4065466B2 (ja) データ通信システム
JPH11317755A (ja) デ―タ通信システム、デ―タ通信方法、デ―タ通信装置及びディジタルインタ―フェイス
JPH11308255A (ja) データ通信システム、方法及び装置並びに記憶媒体
JPH11355319A (ja) デ―タ通信システム、デ―タ通信方法、デ―タ通信装置及びディジタルインタフェ―ス
JPH11298509A (ja) データ通信システム、データ通信方法、データ通信装置及び記憶媒体

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

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee