KR19980042942A - 데이터 서브 방법 및 장치 - Google Patents

데이터 서브 방법 및 장치 Download PDF

Info

Publication number
KR19980042942A
KR19980042942A KR1019970065468D KR19970065468D KR19980042942A KR 19980042942 A KR19980042942 A KR 19980042942A KR 1019970065468 D KR1019970065468 D KR 1019970065468D KR 19970065468 D KR19970065468 D KR 19970065468D KR 19980042942 A KR19980042942 A KR 19980042942A
Authority
KR
South Korea
Prior art keywords
data
buffer
stream
atm
class
Prior art date
Application number
KR1019970065468D
Other languages
English (en)
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 EP19960203336 external-priority patent/EP0847166B1/en
Priority claimed from EP19960203334 external-priority patent/EP0845905B1/en
Priority claimed from EP96203338A external-priority patent/EP0847215A1/en
Application filed by 서지 포처, 소니 유로파 비. 브이. filed Critical 서지 포처
Publication of KR19980042942A publication Critical patent/KR19980042942A/ko

Links

Abstract

본원 발명은 데이터 전달을 위한 서버들에 관한 것으로, 데이터의 물리적 전송에 적극 관련되는 경향을 갖는 전형적인 서버들이 설계되었다. 주문형 비디오(VOD) 또는 주문형 가라오케(KOD)와 같은 응용들에 대해, 매우 많은 수의 디지털 비디오 스트림들의 실시간적인 전달이 요구된다. 디지털 비디오 스트림은 전형적으로 통상 각각 MPEG-1 표준 및 MPEG-2 표준으로 알려져 있는 ISO/IEC 11172 또는 ISO/IEC 13818에 따라 압축된 비디오 데이터를 포함한다.
종래, 단순한 데이터 전달 이상의 기능을 가진 ATM에 기초한 서버 시스템, ASIC로 구성된 ATM 통신용 스트리밍 엔진, 및 MPEG 표준에 따라 압축된 비디오 데이터를 기록 및 재생하는 방법이 이미 제안되어 있으며,
본원 발명은 상술된 종래 기술을 개선하고 아울러 기타 응용들에 대한 서버를 제공하거나 이 두가지 기능중 하나를 제공하는 것을 목적으로 합니다.

Description

데이터 서브 방법 및 장치
본원 발명은 데이터 전달을 위한 서버들에 관한 것이다. 데이터의 물리적 전송에 적극 관련되는 경향을 갖는 전형적인 서버들이 설계되었다. 주문형 비디오(VOD : Video on Demand) 또는 주문형 가라오케(KOD: Karaoke on Demand)와 같은 응용들에 대해, 매우 많은 수의 디지털 비디오 스트림들의 실시간적인 전달이 요구된다. 디지털 비디오 스트림은 전형적으로 통상 각각 MPEG(Moving Picture Experts Group)-1 표준 및 MPEG-2 표준으로 알려져 있는 ISO(International Organization for Standardization: 국제 표준화 기구)/IEC(International Electrotechnical Commission: 국제 전기 표준 회의) 11172 또는 ISO/IEC 13818에 따라 압축된 비디오 데이터를 포함한다.
단순한 데이터 전달 이상의 기능을 가진 ATM(Asynchronous Transfer Mode: 비동기 전송 모드)에 기초한 서버 시스템이 이미 유럽 특허 출원 제 95, 200819.1 호에 제안되어있다.
ASIC(Application Specific Integrated Circuit: 응용 주문형 집적 회로)로 구성된 ATM 통신용 스트리밍 엔진이 PCT(Patent Cooperation Treaty: 특허 협력 조약)하에 공개된 국제 출원 제 WO 96/08896 호에 제안되어있다.
MPEG 표준에 따라 압축된 비디오 데이터를 기록 및 재생하는 방법이 유럽 특허 출원 제 EP 0 667 713 A2 호에 제안되어 있다. 이 경우, 특수 압축 비디오 데이터 재생 장치가 VCR 기능들(예를 들면, FF, FR)을 실행할 수 있도록 압축된 비디오 데이터가 주사 정보(scan information)를 포함하는 특수 형태로 디스크에 기록된다.
본원 발명의 목적은 상술된 종래 기술을 개선하고 아울러 기타 응용들에 대한 서버를 제공하거나 이 두가지 기능중 하나를 제공하는 것이다.
본원 발명은, 제 1 양상에 있어서, 한 ATM 쎌의 VPI(Virtual Path Identifier)/VCI(Virtual Channel Identifier)를 내부 ID로 변환시키기는 방법을 제공하며, 이 방법은;
VPI/VCI 엔트리들을 각 VPI/VCI 엔트리부분에 따른 테이블내의 섹션들로 분산시키는 단계와;
한 ATM 쎌을 수신하는 단계와;
상기 수신된 ATM 쎌의 VPI/VCI 부분에 따라 검색될 한 섹션을 선택하는 단계와;
상기 수신된 ATM 쎌의 VPI/VCI에 대응하는 엔트리를 찾기 위해 상기 선택된 섹션에 걸쳐 검색을 실행하는 단계; 및
발견된 엔트리에 대응하는 내부 ID를 출력하는 단계를 포함한다.
본원 발명에 따른 내부 ID로의 변환 방법의 양호한 실시예가 본원의 종속항들에 기술된다.
또한, 본원 발명은 한 ATM 쎌의 한 VPI/VCI를 내부 ID로 변환시키는 장치를 제공하며, 이 장치는;
VPI/VCI 엔트리들을 기억하며 섹션들로 분할되는 테이블과;
상기 VPI/VCI 엔트리들을 각 VPI/VCI 엔트리부분에 따른 테이블내의 섹션들로 분산시키는 수단과;
한 수신된 ATM 쎌의 VPI/VCI 부분에 따라 검색될 한 섹션을 선택하는 수단; 및
상기 수신된 ATM 쎌의 VPI/VCI에 대응하는 한 엔트리를 찾기 위해 상기 선택 된 섹션에 걸쳐 검색을 실행하고 발견된 엔트리에 대응하는 내부 ID를 출력하는 수단을 구비한다.
본원 발명은, 제 2 양상에서, ATM 통신망에 대해 데이터를 전송하고 이 ATM 통신망으로부터 데이터를 수신하는 장치를 제공하며, 이 장치는;
(a) 호스트 컴퓨터, 기억 장치, 및 본 장치사이의 버스 서포트 통신부와과 인터페이싱하는 버스 인터페이스와;
(b) 상기 ATM 통신망과 인터페이싱하는 ATM 인터페이스와;
(c) 상기 버스 인터페이스로부터의 출력 데이터를 상기 ATM 인터페이스로 전송하는 전송 유닛으로서,
(1) 상기 버스 인터페이스로부터의 출력 데이터를 버퍼링하는 버퍼로 사용되고 있는 RAM과 인터페이싱하는 제 1 RAM 인터페이스와;
(2) 상기 버퍼로부터의 출력 데이터를 출력 ATM 쎌들내로 분할하는 수단; 및
(3) 상기 분할 수단과 협력하여 상기 ATM 인터페이스에 대한 출력 ATM 쎌들의 트래픽을 제어하는 트래픽 형성기를 포함하는 전송 유닛; 및
(d) 상기 ATM 인터페이스로부터의 입력 데이터를 상기 버스 인터페이스로 전송하는 수신 유닛으로서,
(1) 인입 ATM 쎌들의 VPI/VCI 필터링을 실행하는 수단과;
(2) 인입 ATM 쎌들의 페이로드(payload)를 사용하여 입력 데이터를 재어셈블링하는 수단; 및
(3) 상기 재어셈블링 수단의 입력 데이터를 버퍼링하는 버퍼로 사용되고 있는 RAM과 인터페이싱하는 제 2 RAM 인터페이스를 포함하는 수신 유닛을 구비한다.
본원 발명에 따른 장치는 전달되는 데이터의 관리뿐만 아니라 다수의 고객들과 상호 작용하는 실행 응용들의 관리, 및 한 시스템에 걸쳐 분산된 모듈들의 관리를 실행한다. 본원 발명에 따른 서버는, 호스트 컴퓨터가 덜 적극적으로 데이터의 물리적 전송에 관련됨에 따라, 비교적 높은 레벨의 관리 타스크들을 실행하는데 시간 또는 처리 전력을 제공한다. 본원 발명에 따른 하드웨어는 서로 다른 실행 요구 조건들 하에서 실시간으로 데이터를 전달할 수 있고 따라서 이와 같은 실시간 데이터 전달에 아주 적합하다. 본원 발명에 따른 스트리밍 엔진은 많은 고객들과의 동시 통신들을 지원할 수 있고 비디오 스트리밍 타스크를 용이하게 실행할 수 있다. 본원 발명에 따른 서버는 또한 어떠한 유형의 고객들에 대해서도 데이터를 서브할 수 있도록 상호 운용성(interoperability)을 제공한다. 전달되는 내용은 본원 발명에 따른 서버 내에 여러 형태(즉, 원래 그대로의 형태 또는 비포맷팅된 형태)로 기억될 수 있다.
본원 발명은, 제 3 양상에 있어서, 한 기억 장치로부터 데이터를 스트리밍하는 방법을 제공하며, 이 방법은;
한 버퍼에 대한 최소한 일부분이 불연속하는 버스트 데이터용 기록 번지들을 제공하는 단계와;
호스트 컴퓨터, 기억 장치, 및 스트리밍 장치사이의 버스 서포트 통신부를 거쳐 상기 기억 장치로부터 버스트 데이터를 상기 버퍼로 전달하는 단계와;
상기 기록 번지들에 따른 버퍼 내에 버스트 데이터를 기록하는 단계; 및
선형 방식으로 상기 버퍼로부터 데이터를 판독하는 단계를 포함한다.
본원 발명에 따른 데이터 스트리밍 방법의 양호한 실시예가 본원의 종속항들에 기술된다.
또한, 본원 발명은 한 기억 장치로부터 데이터를 스트리밍하는 스트리밍 장치를 제공하며, 이 장치는;
호스트 컴퓨터, 기억 장치, 및 스트리밍 장치사이의 버스 서포트 통신부를 거쳐 상기 기억 장치로부터 버스트 데이터를 수신하는 수단과;
최소한 일부분이 불연속하는 버스트 데이터용의 기록 번지들을 제공하는 수단; 및
상기 기록 번지들에 따라 버스트 데이터를 기억시키고 이로부터 선형 방식으로 데이터를 출력해내는 버퍼를 구비한다.
본원 발명은, 제 4 양상에 있어서, 데이터를 전달하는 방법을 제공하며, 이 방법은;
호스트 컴퓨터로부터 최소한 한 쌍의 번지 및 명령어를 로딩하는 단계와;
상기 데이터를 한 버퍼에 기억시키는 단계와;
한 판독 포인터에 따라 상기 버퍼로부터의 상기 데이터를 판독해내는 단계와;
상기 번지와 상기 판독 포인터에 의해 지정된 한 번지사이에 정합이 검출될 경우 상기 명령어를 실행하는 단계; 및
상기 명령어의 실행 후 상기 버퍼로부터 판독된 데이터를 전달하는 단계를 포함한다.
또한 본원 발명은 데이터를 전달하는 장치를 제공하며, 이 장치는;
호스트 컴퓨터로부터 로딩된 최소한 한 쌍의 번지와 명령어를 기억시키고 상기 번지와 데이터를 버퍼링하는 버퍼의 판독 포인터에 의해 지정된 한 번지사이의 정합을 검출하는 명령어 블록과;
상기 정합이 검출될 때 상기 명령어 블록과 협력하여 상기 명령어를 실행하는 수단; 및
상기 명령어의 실행 후 상기 버퍼로부터 판독된 데이터를 전달하는 수단을 구비한다.
본원 발명은, 제 5 양상에 있어서, 데이터를 전달하는 방법을 제공하며, 이 방법은;
한 통신망으로부터 데이터를 수신하는 단계와;
상기 수신된 데이터가 한 기억 장치로 전송될 때 이 데이터내에서 최소한 하나의 프리셋 비트 패턴을 검출하는 단계와;
상기 프리셋 비트 패턴이 검출될 때, 한 리스트에 대해, 상기 데이터에서의 프리셋 비트 패턴의 위치에 대응하는 위치 정보를 부가시키는 단계와;
상기 기억 장치 내에 상기 데이터를 기억시키는 단계; 및
상기 리스트에서의 상기 위치 정보에 따라 상기 기억 장치로부터 상기 통신 망으로의 데이터의 전달을 제어하는 단계를 포함한다.
이 방법의 양호한 실시예가 본원의 종속항들에 기술된다.
또한 본원 발명은 데이터 전달 장치를 제공하며, 이 장치는;
한 통신망으로부터 데이터를 수신하는 수신 수단과;
상기 데이터가 상기 수신 수단으로부터 이 데이터를 기억하는 기억 장치로 전송될 때 상기 데이터에서 최소한 하나의 프리셋 비트 패턴을 검출하는 패턴 검출기와;
상기 프리셋 비트 패턴이 상기 패턴 검출기에 의해 검출될 때 상기 데이터에서의 프리셋 비트 패턴의 위치에 대응하는 위치 정보를 기억시키는 리스트; 및
상기 리스트에서의 위치 정보에 따라 상기 기억 장치로부터 상기 통신망으로의 데이터의 전달을 제어하는 수단을 구비한다.
본원 발명은, 제 6 양상에 있어서, 트래픽 형성 방법을 제공하며, 이 방법은;
하나 또는 그 이상의 제 1 스트림들을 각각 동일한 비트율 특성들을 가진 하나 또는 그 이상의 스트림들을 포함하는 하나 또는 그 이상의 등급들로 분류하는 단계와;
각 등급에 대한 비트율을 제어하기 위해 한 파라미터 세트를 설정하는 단계; 및
상기 파라미터 세트에 따라 각 등급의 비트율 페이싱(rate pacing)을 실행하는 단계를 포함한다.
이 방법의 양호한 실시예가 본원의 종속항들에 기술된다.
또한 본원 발명은 트래픽 형성기를 제공하며, 이 형성기는;
하나 또는 그 이상의 제 1 스트림들을 각각 동일한 비트율 특성들을 가진 하나 또는 그 이상의 스트림들을 포함하는 등급들로 분류하는 수단과;
각 등급에 대한 비트율을 제어하기 위해 한 파라미터 세트를 기억하는 기억 수단; 및
상기 기억 수단에서의 파라미터 세트에 따라 각 등급의 비트율 페이싱을 실행하는 수단을 구비한다.
도 1 은 한 대화식 통신 시스템의 전체 시스템 아키텍처를 도시한 도면.
도 2 는 본원 발명에 따른 장치의 한 실시예의 상세 블록도.
도 3 은 도 2 Tx 번지 변환기의 블록도.
도 4 는 도 3 번지 변환기 사용의 한 예를 도시한 도면.
도 5a 내지 도 5c는 TCP IP 패킷화를 위한 번지 변환이 각 예들을 도시한 도면.
도 6 은 도 2 Tx RAID 블록 사용의 한 예를 도시한 도면.
도 7 은 도 2 트래픽 형성기에 의해 얻어진 비트율의 반응을 도시한 도면.
도 8 은 한 쎌 주기에서 스트림의 전송을 설명하기 위한 다이어그램.
도 9 는 서로 다른 트래픽 등급들에 대한 쎌들의 전송을 도시한 도면.
도 10 은 도 2 트래픽 형성기 아키텍처의 블록도.
도 11 은 도 2 명령어 블록의 블록도.
도 12 는 도 2 바이트 교체기의 동작을 설명하기 위한 다이어그램.
도 13 은 UNI에 사용된 한 ATM 쎌의 한 포맷을 도시하는 도면.
도 14 는 도 2 VPI/VCl 변환기의 블록도.
도 15 는 도 2 패턴 검출기의 블록도.
도 16 은 도 2 번지 변환기의 한 예를 도시한 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 서버12 : SMUs
14 : 로컬 ATM 스위치16 : 공중 통신망
18 : STBs20 : 기억 장치
28 : 호스트 컴퓨터36 : 스트리밍 엔진
42 및 46 : 외부 RAMs
이하, 첨부된 도면을 참조하여 본원 명세서를 보다 상세히 기술하겠다.
도 1 은 대화식 통신 시스템의 한 양호한 실시예의 전체 시스템 아키텍처를 도시한다. 이 통신 시스템은 사실상 어떠한 종류의 대화식 다중-매체 응용도 지원하는 광대역 시스템이다. 실시간 다중-매체 전달 모드 응용들에 대해 특별한 관심이 모아지고 있다. 서버(10)는 VOD 서버, KOD 서버, 및/또는 Internet 서버등으로 작용하며, 한 공중 통신망(16)을 통해 고개들과 같은 STBs(Set Top Box : 18)와 통신한다. 상기 서버(10)는 로컬 ATM 스위치(14) 및 이 로컬 ATM 스위치(14)를 통해 서로 연결된 여러 SMUs(Storage Medium Unit ; 12)로 이루어져있다. 상기 로컬 ATM 스위치(14)의 주된 목적들은 SMUs(12)사이에서 데이터를 루팅(예컨대, 한 SMU로부터 다른 SMU로 MPEG 표준에 따라 압축된 화상을 복제)시키고, 상기 서버(10)내에서 ATM에 기초한 LAN을 형성하며, 상기 공중 통신망(16)에 대해 인터페이싱하는 것이다. 각각의 SMU(12)는 현대 기술에 의해 고속, 예컨대 최대 622 Mbps로 상기 로컬 ATM 스위치(14)와 통신한다. 상기 공중 통신망(16)은 선택적인 것으로 상기 서버(10)는 바로 STBs(18)와 통신할 수도 있다.
도 2 는 SMU(12)의 상세 블록도이다. 이 SMU(12)는 주요 유닛으로서 기억 장치(20), 호스트 컴퓨터(28), 및 스트리밍 엔진(36)을 갖는다. 이들 유닛은 PCI(Peripheral Component Interconnect) 버스(24)를 거쳐 서로 연결된다. 상기 호스트 컴퓨터(28)내의 호스트 CPU(30) 및 호스트 메모리(32)는 종래 구조의 MIPS 버스(34)를 거쳐 연결된다. 이 실시예에서 상기 MIPS 버스(34)는 PCI 브릿지(26)를 통해 상기 PCI 버스(24)에 연결된다. 상기 호스트 컴퓨터(28)는 주로 고객들 또는 STBs와 상호 작용하는 VOD, KOD, 인터네트 서버와 같은 실행 응용을 위해 준비된다. 상기 기억 장치(20)는 하나 또는 그 이상의 하드디스크 스트링들을 포함한다. 이들 하드 디스크들은 SCSI 또는 Fiber Channel을 거쳐 연결되며 MPEG-2 인코드 비디오 스트림들과 같은 실시간 관련 데이터 및 헤더들을 갖지 않은 TCP/IP(Transmission Control Protocol/Internet Protocol) 패킷들의 바디부와 같은 데이터 패킷들의 내용을 기억한다.
상기 스트리밍 엔진(36)은 양호하게도 하나의 단일 ASIC로 구성된다. 이 스트리밍 엔진(36)은 실시간 관련 데이터 및 데이터 패킷들을 스트리밍한다. 상기 스트리밍 엔진(36)은 주요 부분으로서 전송 경로(50) 및 수신 경로(80)와, PCI 인터 페이스(38), 및 ATM 인터페이스(40)를 갖는다. 상기 전송 경로(50)는 상기 기억 장치(20) 및 상기 호스트 컴퓨터(28)로부터 상기 로컬 ATM 스위치(14)로 출력되는 데이터 스트림을 처리한다. 상기 수신 경로(80)는 상기 로컬 ATM 스위치(14)로부터 상기 기억 장치(20) 및 호스트 컴퓨터(28)로의 입력 데이터 스트림을 처리한다. 상기 전송 경로 및 수신 경로의 고속 연결 및 독자성은 양 방향으로 622Mbps를 동시에 허용한다.
상기 PCI 인터페이스(38)는 상기 PCI 버스(24)를 상기 전송 경로(50), 및 상기 수신 경로(80)와 인터페이싱시킨다. 상기 PCI 인터페이스(38)는 상기 PCI 버스(24)로부터 출력 데이터 스트림을 상기 전송 경로(50)내의 PCI FIFO(52)로 전달하고 상기 수신 경로(80)내의 PCI FIFO(98)로 부터 입력 데이터 스트림을 PCI 버스(24)로 전달한다.
상기 ATM 인터페이스(40)는 상기 전송 경로(50) 및 상기 수신 경로(80)를 상기 로컬 ATM 스위치(14)에 연결되어 있는 외부 물리 레이어 장치(external physical layer device)(도시 않됨)와 인터페이싱시킨다. 상기 ATM 인터페이스(40)는 UTOPIA(Universal Test and Operation PHY Interface for ATM) 레벨 2 표준에 따른 두가지 형태의 ATM 인터페이스들을 포함할 수 있다. 그중 하나는 8 비트 폭 데이터 경로 모드의 UTOPIA 인터페이스이고 다른 하나는 16 비트 폭 데이터 경로 모드의 UTOPIA 인터페이스이다.
상기 전송 경로(50)는 고속 전송을 실행하도록 함께 작용하는 여러 기능 블록들로 이루어진다.
상기 전송 경로(50)내에서 제 1 블록은 Tx 번지 변환기(54)로서, 이는 PCI FIFO(52)로부터의 출력 데이터 스트림을 외부 RAM(42)내에 할당된 스트림 버퍼(44)의 호스트-지정 메모리 위치들에 배치시킨다. 이것은 불연속적인 메모리내로의 데이터의 제어된 스캐터링(scattering)을 허용하며, 상기 메모리는 데이터 스트림들의 완전성 및 TCP/IP 패킷화를 보장하는 소위 RAID(Redundant Array of Inexpensive Disks)동작과 다소 유사한 동작에 유용하다.
TCP/IP 검사 합 블록(56)은 TCP/IP 검사 합들을 계산하기 위한 하드웨어를 지원한다. 상기 TCP/IP 검사 합 블록의 기능은 모든 데이터가 전달될 때까지 각 패킷에 대한 부분 검사 합을 계산 및 유지하는 것이다. 상기 TCP/IP 검사 합 블록(56)은 스트림 버퍼(44)내에 바로 TCP/IP 패킷들을 형성하기 위해 Tx 번지 변환기(54)와 함께 동작한다. 패킷들의 TCP/IP 헤더 및 페이로드는 부분 검사 합을 유지하는 검사 합 블록(56)을 통과하여 개별적으로 스트림 버퍼(44)내에 위치하게 된다. 모든 데이터가 스트림 버퍼(44)내에 위치하자마자, 검사 합 값이 TCP/IP 헤더의 정확한 위치 내에 배치되고, 당해 패킷은 전송될 준비가 된다.
RAM 인터페이스(58)는 상기 외부 RAM(42)과 전송 경로(50)사이에 인터페이스를 형성한다. 상기 외부 RAM(42)은 이중 포트 SDRAM(Synchronous Dynamic RAM)을 구비할 수도 있다. 이 외부 RAM(42)은 상기 기억 장치들(20)의 디스크들로부터 버스트형(bursty) 데이터 트래픽을 분리시키기 위해 여러 스트림 버퍼들(44)을 포함하며 상기 ATM-통신망(16)에 대해 필요한 일정 비트율 데이터 스트림들을 제공한다. 각각의 스트림 버퍼는 하나의 출력 데이터 스트림을 처리한다. 입력 방향과는 대조적으로, 출력 방향에서의 데이터 흐름 특성들이 완전히 예측 가능(제어 가능)하므로, 버퍼 요구 조건들이 미리 추정될 수 있다. 그러므로, 상기 스트림 버퍼들(44)이 상기 외부 RAM(42)내에 정적으로(statically) 할당된다.
상기 Tx RAID 또는 SDI(Stream Data Integrity) 블록(60)은 데이터 중복성(redundancy)을 지원한다. 상기 Tx 번지 변환기(54)는 스트림 버퍼(44)내에 필요한 만큼의 데이터를 위치시킨다. 그후, 데이터가 스트림 버퍼(44)로부터 출력됨에 따라, 상기 Tx RAID 블록(60)은 기억 장치들(20)내의 디스크들중 하나가 파괴되는 경우 에러 데이터를 보정한다.
트래픽 형성기(62)는 상기 ATM-통신망(16)에 대한 스트림 버퍼들(44)로부터의 출력 데이터의 스트리밍을 제어한다. 상기 트래픽 형성기(62)는 매우 정확한 비트율 페이싱 및 낮은 CDV(Cell Delay Variation)를 위해 설계된다. 상기 트래픽 형성기(62)는 두 개의 메인 섹션들로 이루어진다. 한 섹션은 비디오 트래픽과 같은 높은 우선순위의 데이터를 처리하고, 나머지 다른 한 섹션은 낮은 우선순위의 일반 데이터 트래픽을 처리한다.
명령어 블록(66)은 실시간 관련 작업들을 호스트 컴퓨터(28)에 오프-로딩시키도록 준비된다. 이 명령어 블록(66)은 출력 데이터 스트림내에서 정확하게 알려진 위치들의 내용 전송에 의해 트리거된다.
분할 블록(70)은 상기 스트림 버퍼(44)로부터 제공된 출력 데이터 스트림을 AAL-5 PDUs(ATM Adaptaion Layer-5 Protocol Data Units)에 분할하고, 상기 AAL-5 PDUs를 ATM 쎌들로 매핑한다. 출력 데이터 스트림이 MPEG-2 SPTS(Single Program Transport Stream)인 경우, 상기 분할 블록(70)은 MPEG-2 SPTS내에 두 개이하의 TS 패킷들이 존재하는 경우를 제외하곤, MPEG-2 SPTS내의 두개의ㅡ TS 패킷들을 하나의 AAL-5 PDU에 분할할 수 있으며, 전자의 경우엔 상기 AAL-5 PDU는 여덟 개의 ATM 쎌들로 매핑한다. 일반적인 경우, AAL-5 분할은 스트림당 프로그래밍이 가능한 PDU 크기에 의해 제어된다.
상기 수신 경로(80)는 상기 전송 경로(50) 블록들의 역 동작에 상당하는 여러 블록들을 갖는다.
VPI/VCI(Virtual Path Identifier/Virtual Channel Identifier) 필터링 블록(84)은 인입 ATM 쎌들의 고속 및 효과적인 VPI/VCI 필터링을 실행한다. 이 필터링은 VPI/VCI 테이블내의 엔트리들에 걸친 결합 해시(hash) 및 선형 검색 기능들에 의해 이루어진다.
재어셈블리 블록(86)은 기본적으로 분할 블록(70)의 역 기능들을 실행한다. 상기 재어셈블리 블록(86)은 ATM 쎌들의 페이로드를 사용하여 AAL-5 PDUs를 재구성하며, 그후 이 AAL-5 PDUs를 상부 레이어 데이터(예를 들면, MPEG-2 SPTS, TCP/IP Packers)로 매핑한다.
TCP 검사 합 확인 블록(88)은 입력 데이터 스트림이 TCP를 거쳐 전송될 경우 TCP 헤더내의 TCP 검사 합을 확인한다.
패턴 검출기(92)는 제한된 수의 비트 패턴들이 입력 데이터 스트림내에서 검출되게 한다. 지정된 비트 패턴들이 이 스트림내에서 정확히 어디에서 발생하는 지를 나타내는 리스트가 형성된다. 이것은 접촉식(on-the-fly)으로 실행될 수 있는 몇몇 처리 타스크들을 지원하는 반면, 그렇지 않을 경우, 후-처리(post-processing)로 처리되어야만 한다.
Rx RAID 또는 SDI 블록(90)은 입력 데이터 스트림에 대해 중복성을 부가한다. N워드들의 시퀀스가 한 버퍼(도시않됨)에 기록될 경우, 이들 N 워드들상의 패리티가 그 다음에 기록된다. 이 기능은 턴온/턴오프될 수 있다. 입력 데이터 스트림이 기억 장치(20)내에 저장되어 후에 TCP/IP 패킷들로 상기 전송 경로(50)를 거쳐 전송될 경우, 이 기능은 턴오프된다.
RAM 인터페이스(94)는 상기 수신 경로(80)와 외부 RAM(46)사이의 인터페이스이다. 상기 외부 RAM(46)은 이중 포트 SDRAM을 구비할 수도 있다. 상기 외부 RAM(46)은 입력 데이터 스트림들을 기억하는 여러 스트림 버퍼들(48)로서 사용된다. 각각의 스트림 버퍼(48)는 하나의 입력 데이터 스트림을 처리한다. 입력 데이터 스트림들은 예측불가능한 특성들을 가질 수 있다. 예컨데, 몇몇 데이터 패킷들이 매우 강한 버스트형이 될 수 있다. 이것은 필요한 버퍼 용량이 스트림 및 시간에 따라 변화함을 의미한다. 그러므로, 외부 RAM(46)에 있어, 동적 버퍼 할당(dynamic buffer allocation)이 우선적으로 이루어진다
Rx 번지 변환기(96)는 스트림 버퍼(48)에 대해 적절한 판독 번지들을 제공한다.
스트리밍 엔진(36)의 가장 주요한 블록들이 아래에 상세히 기술된다.
Tx 번지 변환기
출력 데이터 스트림이 PCI 버스(24)를 거친 버스트 전송에 의해 기억 장치(20)로부터 스트리밍 엔진(36)으로 제공된다. 이 Tx 번지 변환기(54)의 목적은 스트림 버퍼(44)의 적절한 영역들안에 하나의 연속되는 DMA 버스트를 스캐터링하는 것이다.
도 3은 이 Tx 번지 변환기(54)의 블록도이다. 기억 장치(20)로부터 하나의 연속적인 DMA 버스트가 도달하기 전, 정확한 시작 번지가 기억 장치 제어기(22)를 거쳐 레지스터(102)에 기록된다. 이 레지스터(102)의 내용은 스트림 버퍼(44)에 대한 기록 번지로서 사용된다. 카운터(106)는 PCI FIFO(52)로부터 출력 데이터 스트림의 비트 수들을 카운팅한다. 32 비트들로 이루어진 한 데이터 워드가 이 카운터(106)를 통과할 때마다, 이는 증가 제어기(104)에 대해 한 워드가 스트림 버퍼(44)로 전달됨을 알려준다. 각각의 새로운 워드와 함께, 증가 제어기(104)는 레지스터(102)의 내용을 프로그램가능 값인 ADDRESS_INCREMENT로 증가시킨다. 출력 데이터 스트림이 RAID 처리된 데이터인 경우, ADDRESS_INCREMENT의 값은 기본적으로 RAID 시스템에 사용된 디스크들의 수에 따라 설정된다. 상기 출력 데이터 스트림이 TCP/IP 패킷의 페이로드일 경우, ADDRESS_INCREMENT의 값은 기본적으로 패킷화 파라미터들에 따라 설정된다.
상기 출력 데이터 스트림이 RAID 처리된 데이터일 때의 번지 변환이 도 4를 참조하여 이하에 기술된다. 이 예에 있어서, RAID 또는 SDI 시스템은 네개의 디스크들 Disk 0, Disk 1, Disk 2, 및 Disk 3로 구성된다. Disk 0는 로컬 ATM 스위치(14)로 전송될 워드들 1, 4, 7...을 포함한다. Disk 1은 또한 로컬 ATM 스위치(14)로 전송될 워드들 2, 5, 8...을 포함한다. Disk 2는 또한 로컬 ATM 스위치(14)로 전송될 워드들 3, 6, 9...을 포함한다. Disk 3은 또한 에러 보정을 위한 패리티 워드들 0, 1, 2...을 포함한다. 각각의 패리티 워드(예를 들면, 패리티 0)는 당해 패리티 워드와 함께 RAID의 소위 스트라이프 유닛을 구성하고 있는 세 개의 워드들(예를 들면, 워드들 1, 2, 및 3)로부터 Rx RAID 블록(90)에서 발생된다.
디스크들중 하나(예를 들면, Disk 2)가 고장일 경우, 패리티 워드들을 포함하는 한 연속적인 DMA 버스트가 Tx 번지 변환기(54)에 전달된다. 설명을 용이하게 하기 위해, 하나의 연속적인 DMA 버스트의 실제 크기가 100k바이트보다 커질 수 있을 지라도(하드웨어 및/또는 소프트웨어의 속도에 따라), 하나의 연속적인 DMA 버스트의 크기는 96 바이트(24 워드)라고 가정하자. 이 경우, 당해 연속적인 DMA 버스트 120는 Disk 0로부터의 워드들 1, 4, 7, 10, 13, 16과, Disk 1로부터 워드들 2, 5, 8, 11, 14, 17과, Disk 2로부터 워드들 3, 6, 9, 12, 15, 18, 및 Disk 3으로부터 패리티 워드들 0, 1, 2, 3, 4, 5로 이루어진다. 상기 Tx 번지 변환기(54)는 다음의 번지 시퀀스를 발생시킨다.
178, 182, 186, 190, 194, 198 (Disk 0으로부터의 데이터)
179, 183, 187, 191, 195, 199 (Disk 1로부터의 데이터)
180, 184, 188, 192, 196, 200 (Disk 2로부터의 데이터)
181, 185, 189, 193, 197, 204 (Disk 3으로부터의 데이터)
특히, 연속 DMA 버스트 120가 스트림 버퍼(44)에 도달하기 전에, 값 178이 시작 번지로서 레지스터(102)에 기억된다. 그후, Disk 0로부터의 워드 1이 상기 스트림 버퍼(44)내의 번지 178에 기록된다. 워드 1이 카운터(106)를 통과할 때, 증가 제어기(104)는 디스크들의 수에 대응하는 값 4의 ADDRESS_INCREMENT만큼 상기 레지스터(102)내의 값 178을 증가시킨다. 그후 Disk 0으로부터의 워드 4가 상기 스트림 버퍼(44)내의 번지 182에 기록된다. 워드 4가 상기 카운터(106)를 통과할 때, 상기 증가 제어기(104)는 상기 레지스터(102)내의 값 182를 값 4의 ADDRESS_INCREMENT만큼 증가시킨다. 그후 Disk 0으로부터의 워드 7이 상기 스트림 버퍼(44)내의 번지 186에 기록된다. 유사한 방식으로, Disk 0으로부터의 나머지 워드들 10, 13, 16이 상기 스트림 버퍼(44)에서 서로 떨어져 있는 디스크들의 번호인 번지들 190, 194, 198에 기록된다.
Disk 0로부터 워드 16이 상기 카운터(106)를 통과할 때, 증가 제어기(104)가 레지스터(102)내의 값 198을 값 -19의 ADDRESS_INCREMENT만큼 증가시킨다. 그후 Disk 1로 부터의 워드 2가 스트림 버퍼(44)내의 번지 179에 기록된다. 상기 워드 2가 상기 카운터(106)를 통과할 때, 상기 증가 제어기(104)가 상기 레지스터(102)내의 값 179을 값 4의 ADDRESS_INCREMENT만큼 증가시킨다. Disk 1로부터의 워드 5가 상기 카운터(106)를 통과할 때, 상기 증가 제어기(104)는 상기 레지스터(102)내의 값 183을 값 4의 ADDRESS_INCREMENT만큼 증가시킨다. 그후 Disk 1로부터의 워드 8이 스트림 버퍼(44)내의 번지 187에 기록된다. 유사한 방식으로, Disk 1로부터 나머지 워드들이 스트림 버퍼(44)내에서 분리된 디스크들의 번호인 번지들 191, 195, 199에 기록된다.
동일한 방식으로, Disks 2 및 3으로부터의 워드들이 상기 스크림 버퍼(44)내의 적절한 번지들에 기록된다. 상기 스트림 버퍼(44)내에 기록된 워드들이 선형 방식으로 판독되며, 에러들을 보정하기 위해 Tx RAID 블록(60)에 제공된다.
상기 기억 장치(20)로부터 출력되는 데이터 스트림이 TCP/IP 페이로드일 때, 상기 번지 변환기(54) 및 상기 TCP 검사 합 계산 블록(56)은 TCP/IP 패킷 발생을 지원하기 위해 서로 밀접하게 동작한다. 호스트 컴퓨터(28)는 한 특정 패킷 크기에 따라 데이터가 분배되도록 Tx 번지 변환기(54)를 사전-프로그래밍한다. 가장 먼저 호스트 컴퓨터(28)는 모든 패킷화 파라미터들을 알아야 할 필요가 있다. 이 동작을 위한 중요한 파라미터들은 TCP 페이로드 크기, TCP 헤더 크기, IP 헤더 크기, 및 IP 페이로드 크기이다. TCP 헤더 및 IP 헤더는 기본적으로 선택형 데이터를 위한 공간을 갖지만 실제로 사용되지는 않는다. 그러므로, 헤더들에 대한 디폴트 크기들(default sizes)을 추정하므로써 간이화가 이루어질 수 있다. 즉, TCP 헤더 크기가 5 워드(20 바이트)이고 IP 헤더 크기는 5 워드(20 바이트)이다.
이 메카니즘은 다음과 같이 기술될 수 있다.
상기 호스트 컴퓨터(28)는 TCP/IP 헤더의 의사-헤더상에서 부분 검사 합 계산을 실행한다. 그 후, 상기 호스트 컴퓨터(28)는 상기 계산 값으로 해당 TCP/IP 패킷에 대한 TCP 검사 합 블록(56)내의 TCP 검사 합 레지스터(57)를 초기화한다. 스트림 퍼버(44)를 위한 공간이 또한 전체 TCP 패킷과 TCP 및 IP 헤더 오버헤드에 적합하도록 외부 RAM(42)내에 준비된다.
상기 호스트 컴퓨터(28)는 그후 TCP 페이로드 크기, TCP 헤더 크기, IP 헤더 크기, 및 IP 페이로드 크기를 Tx 번지 변환기(54)내의 증가 제어기(104)에 명령할 것이다. TCP 페이로드는 그후 PCI 버스(24)를 거쳐 하나의 연속적인 DMA 버스트로서 송출될 수 있으며 헤더들을 위한 공간을 남기고 Tx 번지 변환기(54)에 의해 당해 TCP 페이로드를 위해 준비된 스트림 버퍼(44)내의 영역내에 배치된다. PCI 버스(24)로부터 스트림 버퍼(44)로 진행함에 따라, 검사 합 계산 블록(56)은 TCP 검사 합 레지스터(57)에서의 부분 검사 합을 갱신한다. 이 방법으로, 통상 TCP/IP 패킷들의 벌크를 나타내는 페이로드는 처음 기억 장치(20)로부터 이 패킷을 처리하기 위한 호스트 메모리(32), 그리고 스트림 버퍼(44)로 복제될 필요가 없음을 주목하여라. 이것은 호스트 CPU(30)를 위한 유용한 버스 대폭 및 오버헤드를 절약하게 한다. 페이로드가 기록된 후, 상기 호스트 컴퓨터(28)에 의해 준비된 헤더 정보가 번지 변환기(54)를 거쳐 스트림 버퍼(44)로 송출된다. 상기 페이로드에 의해, 상기 Tx 번지 변환기(54)는 헤더를 앞서 준비된 메모리 위치에 배치시킨다.
이 시퀀스는 반대가 될 수 있으며, 그에 따라 헤더 정보가 가장 먼저 기록되고 페이로드가 그 다음으로 기록된다.
어떤 경우에서도, 헤더 및 페이로드가 기록될 때, TCP 검사 합이 완성되어 정확한 위치로 자동적으로 복제될 수 있다.
이 메카니즘은 또한 한 TCP 패킷의 보다 작은 다수의 IP 패킷들로의 분할을 효과적으로 지원하는데 사용될 수 있다. 이 경우, 각각의 IP 패킷을 위한 공간이 준비된다. TCP 패킷 데이터(헤더+페이로드)가 이들 패킷들로 분할되며 각각의 IP 패킷의 헤더가 상기 호스트 컴퓨터(28)에 의해 기록된다.
모든 IP 패킷들은 기타 다른 블록들과 다른 크기를 갖기 쉬운 최종 블록을 제외하곤 모두 동일한 크기를 갖는다. 번지 변환기(54)는 이것을 고려한다. 완전한 TCP/IP 패킷들이 형성된 후, 전송될 준비를 한다.
도 5a, 도 5b, 및 도 5c는 TCP/IP 패킷화를 위한 번지 변환의 한 예를 도시한다. 이 경우, 하나의 연속 DMA 버스트 130로서 송출된 TCP/IP 페이로드가 스트림 버퍼(44)에 도달하기 전, 값 310이 시작 기록 번지로서 레지스터(102)내에 기억되며, 그후 제 1 데이터의 제 1 워드가 스트림 버퍼(44)내의 번지 310에 기록된다. 제 1 데이터의 제 1 워드가 카운터(106)를 통과한 후, 증가 제어기(104)는 값 1의 ADDRESS_INCREMENT만큼 상기 레지스터(102)내의 값 310을 증가시킨다. 그후 제 1 데이터의 제 2 워드가 상기 스트림 버퍼(44)내의 번지 311에 기록된다. 제 1 데이터의 제 2 워드가 카운터(106)를 통과할 때, 상기 증가 제어기(104)는 상기 레지스터(102)안의 값 311을 값 1의 ADDRESS_INCREMENT만큼 증가시킨다. 그후 제 1 데이터의 제 3 워드가 스트림 버퍼(44)내의 번지(312)에 기록된다. 값 1의 ADDRESS_INCREMENT만큼의 증가가 IP 페이로드 크기에 대응하는 횟수만큼 반복된다. 따라서, TCP/IP 페이로드의 제 1 데이터가 적합한 영역 내에 기록된다.
그후, 증가 제어기(104)가 레지스터(102)의 내용을 IP 헤더 크기에 상당하는 값의 ADDRESS_INCREMENT으로 증가시킨다. 그후, 제 2 데이터의 기록이 레지스터(102)의 내용에 따른 번지로부터 시작한다. 따라서, 번지 변환기(54)는 헤더들에 대한 공간을 남기고 상기 페이로드에 대한 기록 번지들을 발생시킨다. 최종 데이터는 다른 데이터들과 상이한 크기를 갖기 쉽다. 최종 데이터의 크기는 다음 표현식에 의해 증가 제어기(104)에서 계산된다.
최종 데이터 크기=TCP 페이로드 크기 mod IP 페이로드 크기
그러므로, 증가 수는 최종 데이터 크기를 고려하여 제어된다. 이 방식으로, 하나의 연속 DMA 버스트로 송출된 페이로드가 도 5a에 도시된 스트림 버퍼(44)내의 빗금친 영역들(shaded areas)내에서 스캐터링된다.
다음, TCP 헤더(132)가 PCI 버스(24)를 거쳐 하나의 연속적인 버스트로서 송출될 때, 번지 변환기(54)가 스트림 버퍼(44)내에서 TCP 헤더를 위해 앞서 준비된 메모리 위치들에 대응하는 기록 번지들을 발생시킨다.
특히, 하나의 연속적인 버스트 132로서 송출된 TCP 해더가 상기 스트림 버퍼(44)에 도달하기전에, 값 305이 시작 기록 번지로서 상기 레지스터(102)에서 설정 된다. 상기 TCP 헤더의 제 1 워드가 카운터(106)를 통과할 때, 증가 제어기(104)는 레지스터(102)내의 값 305을 값 1의 ADDRESS_INCREMENT만큼 증가시킨다. 그후 TCP 헤더의 제 2 워드가 스트림 버퍼(44)내의 번지(306)에 기록된다. 상기 TCP 헤더의 제 2 워드가 카운터(106)를 통과할 때, 증가 제어기(104)는 레지스터(102)내의 값 306을 값 1의 ADDRESS_INCREMENT만큼 증가시킨다. 상기 TCP 헤더의 제 3 워드가 스트림 버퍼(44)내의 번지 307에 기록된다. 이 값 1의 ADDRESS_INCREMENT만큼의 증가는 TCP 헤더 크기에 상당하는 휫수만큼 반복된다. 따라서 상기 TCP 헤더가 도 5b에 도시된 상기 스트림 버퍼(44)내의 빗금친 영역내에 기록된다.
다음, IP 헤더들 134이 PCI 버스(24)를 걸쳐 하나의 연속적인 버스트로서 송출될 때, 상기 번지 변환기(54)는 상기 스트립 버퍼(44)내에서 상기 IP 헤더들에 대해 앞서 준비된 메모리 위치들에 대응하는 기록 번지들을 발생시킨다.
특히, 하나의 연속적인 버스트 134로서 송출된 상기 IP 헤더들이 스트림 버퍼(44)에 도달하기 전, 값 300이 시작 번지로서 상기 레지스터(102)에서 설정되는 반면, 상기 제 1 IP 헤더의 제 1 워드가 상기 스트림 버퍼(44)의 번지 300에 기록된다. 상기 제 1 IP 헤더의 제 1 워드가 상기 카운터(106)를 통과할 때, 증가 제어기(104)는 상기 레지스터(102)에서의 값 300을 값 1의 ADDRESS_INCREMENT만큼 증가시킨다. 그후 상기 제 1 IP헤더의 제 2 워드가 상기 스트림 버퍼(44)내의 번지 301에 기록된다. 상기 제 1 IP 헤더의 제 2 워드가 상기 카운터(106)를 통과할 때, 상기 증가 제어기(104)는 상기 레지스터(102)에서의 값 301을 값 1의 ADDRESS_INCREMENT만큼 증가시킨다. 그후, 제 1 IP 헤더의 제 3 워드가 상기 스트림 버퍼(44)내의 번지 302에 기록된다. 값 1의 ADDRESS_INCREMENT만큼 증가는 상기 IP 헤더 크기에 상당하는 횟수만큼 반복된다.
그후, 상기 증가 제어기(104)는 상기 레지스터(102)내의 내용을 TCP 헤더 크기 + IP 페이로드 크기에 상당하는 값의 ADDRESS_INCREMENT만큼 증가시킨다. 따라서, 상기 IP 헤더들이 도 5c에 도시된 스트림 버퍼내의 빗금친 영역들내에 기록된다.
다음, 상기 TCP 검사 합 블록(56)에 의해 완성된 TCP 검사 합이 정확한 위치로 복제된다.
이 방식으로, 상기 TCP/IP 패킷화가 완성되며 선형방식으로 상기 스트림 버퍼(44)로부터 판독될 수 있다.
상기 실시예에 있어서, TCP/IP 패킷화가 언급된다. 그러나, TCP 대신 UDP(User Datagram Protocol)을 사용하는 것도 가능하다. 이 경우, 상기 UDP 헤더의 디폴트 크기는 2워드(8바이트)이다.
더욱이, 상기 실시예에 있어서, 상기 TCP 헤더들 및 IP 헤더들은 서로 다른 버스트들로서 상기 호스트 컴퓨터(28)로부터 상기 Tx 번지 변환기(54)로 송출된다. 그러나, 상기 TCP 헤더 및 IP 헤더들을 함께 하나의 연속적인 버스트로 상기 호스트 컴퓨터(28)로부터 상기 Tx 번지 변환기(54)로 송출하는 것이 가능하다.
Tx RAID 또는 SDI 블록
상기 스트림 버퍼(44)에서의 워드들의 시퀀스에 있어서, 패리티 워드가 삽입 될수도 있다. 이 중복성은 에러 보정의 수단을 제공한다. 상기 Tx RAID 또는 SDI 블록(60)은 최종 워드가 N 개의 제 1 워드들에 대한 패리티인 N+1개의 워드들의 시퀀스를 취한다. 예컨대 디스크 고장으로 인해 워드 M이 손상되었음이 하드웨어 및/또는 소프트웨어에 의해 표시되는 경우, 상기 패리티 워드는 기억 장치(20)로부터 회수되어 상기 워드 M를 재구성하는데 사용된다.
예컨대, 도 4의 경우에서, 입력 데이터 142에서의 고장 Disk 2로부터의 워드들 3, 6, 9, 12, 15, 18이 도 6에 도시된 에러를 포함한다. 상기 Tx RAID 블록(60)은 워드들 1,2 및 패리티 워드 0를 사용하여 상기 워드 3을 재구성한다. 상기 Tx RAID 블록(60)은 상기 워드들 4, 5 및 패리티 워드 1을 사용하여 워드 6을 재구성한다. 마찬가지로, 상기 워드들 9, 12, 15, 18이 상기 Tx RAID 블록(60)에 의해 재구성된다. 따라서, 상기 Tx RAID 블록(60)은 에러 보정을 실행하며 에러가 없는 워드들 1, 2, 3, 4....의 시퀀스 142를 출력한다.
상기 RAID 기능은 명령어 블록(66)에 의해 실행/정지될 수 있다.
트래픽 형성기
트래픽 형성기(62)는 두 개의 메인 섹션으로 이루어지는데, 한 섹션은 비디오 트래픽과 같은 높은 우선순위의 데이터를 처리하고, 다른 한 낮은 우선순위의 섹션은 일반적인 데이터 트래픽을 처리한다.
상기 높은 우선순위의 섹션은 여러개의 트래픽 등급들로 구성되며, 이 때 한 등급은 동일한 비트율의 특성을 가진 하나 또는 그 이상의 스트림들의 그룹으로 정의된다. 예컨대, 2Mbps에서의 CBR(Constant Bit Rate)을 가진 모든 스트림들은 동일한 등급에 속한다. VBR(Variable Bit Rate) 형태의 등급은 전형적으로 단지 하나의 스트림을 포함하는데, 이것은 두개의 VBR 스트림들이 항상 동일한 대폭의 패턴들을 갖는 것이 쉽지 않기 때문이다. 각각의 등급들은 비트율을 제어하고, 낮은 CDV(Cell Delay Variation) 및 정확한 비트율 페이싱(accurate rate pacing)을 제공하기 위한 한 단일 세트의 전송 파라미터들을 갖는다. 상기 등급들의 수는 프로그래밍이 가능하나 최대 128개로 제한된다.
각각의 등급은 두 개의 메인 전송 파라미터들, 즉 이상적 스케쥴링 시간(TS)및 이 TS에 대한 증분(Δ)을 갖는다. 기본 메카니즘은 TS가 한 기준 클럭에 일치하거나 그보다 작을 때, 한 스트림 포인터가 전송 큐(transmit queuw)상태로 된다는 것이다. 동시에 값 TS는 값Δ만큼 증가된다. 상기 전송 큐는 상기 스트림 포인터에 의해 표시되는 스트림을 가능한 한 즉시 ATM fifo(72)에 제공하게 되는 선입 선출큐이다.
상기 높은 우선순위 섹션에서, 높은 정확도의 비트율과 낮은 CDV가 다음의 메카니즘들에 의해 달성된다.
기준 클럭의 한정된 해상도로 인해, 단일의 Δ값을 갖는 것은 통상적으로 원하는 정확도를 부여하지 않는다. 상기 원하는 정확도를 달성하기 위해, 단지 하나의 카운터 값이 떨어져 있는, 두개의 Δ값이 교대로 사용된다. 이들 두 개의 값들은 결국 원하는 비트율의 약간 위와 아래에 위치하는 비트율을 발생시킨다. 서로 다른 수의 쎌들에 대해 각각의 Δ값을 사용하는 것은 상기 한정된 클럭 해상도를 보상하고 제한되지 않은 (arbitrary) 정확도를 제공할 수 있다. ΔH및 ΔLLH+1)은 두 개의 서로 다른 증가 값들을 나타낸다. 상기 NH및 NL파라미터들은 대응하는 증가 값들이 교대로 유효해지는 쎌들의 수를 나타낸다. 이 메카니즘에 의해, 상기 스트림은 변조되고 그에 따라 평균 비트율이 원하는 정확도 범위내에서 원하는 비트율에 접근한다. 도 7 은 이 메카니즘에 의해 달성된 비트율의 반응을 도시한다. 도 7에서, NH쎌들은 ΔH에서 송출되며 NL쎌들은 ΔL에서 송출된다. 이 시퀀스는 주기적으로 반복된다. 따라서, 점선으로 도시된 평균 비트율은 긴 시간 비트율로 유지된다.
낮은 CDV가 서로 다른 스트림들로 부터의 쎌들의 스케쥴링 시간들에 있어서의 충돌을 감소시키므로써 달성된다. 많은 기존의 트래픽 형성 메카니즘들에 있어서의 충돌의 주된 이유는 동일한 비트율을 가진 스트림들이 동시에 스케쥴링되기 때문이다. 이것은 특히 다수의 스트림들 및 적은 수의 독립된 비트율들이 존재할 때 문제가 된다. 이 문제점은 동일한 등급에 속하는 스트림들의 셀들의 간격을 고르게 하므로써 양호한 실시예에서 해소된다. 다시 말해, 한 스트림에 대한 증분이 Δ여야 할 경우, 해당 등급에 대한 증분은 Δ/n이고, 이때 n은 한 등급에서의 스트림들의 수이다. 한 등급이 서비스될 때마다, 연속되는 스트림들로부터 데이터가 취해진다. 예컨대, 등급 0에 속하는 스트림 0의 쎌들이 Δ만큼 증가되어야 할 경우, 동일한 등급 0에 속하는 스트림들(즉, 스트림 0 내지 스트림 n-1)의 각 쎌이 도 8에 도시된 Δ/n의 공간으로 송출된다.
상기 두 개의 메카니즘들의 결합으로, 높은 정확도의 비트율 및 낮은 CDV가 달성된다. 상기 전송 큐가 차단되지 않을 경우, 상기 쎌들이 도 9에 도시된 바와 같이 제공된다.
상기 높은 우선순위의 섹션들은 또한 VBR 트래픽을 처리한다. 상기 트래픽형성기(62)는 전송 파라미터들의 원만한 갱신을 지원한다. 이 갱신은 상기 호스트 컴퓨터(28)뿐만 아니라 명령어 블록(66)에 의해 실행된다. 상기 명령어 블록(66)은 상기 호스트 컴퓨터(28)에 의해 프로그래밍되며, 이것의 동작들은 정확한 위치가 상기 스트림 버퍼(44)로부터 전송될 때 트리거된다. 이들 동작들중 하나는 전송 파라미터들로 상기 트래픽 형성기(62)내의 한 특정 스트림을 대체하는 것이다. 비트율 변화 바로 이전의 데이터가 송출되자 마자, 명령어 블록(66)은 상기 파라미터들을 갱신한다. 일단 셋업이 되면, 이 프로세스는 자율적인 것이 되어 더 이상 호스트 CPU(30)와의 상호 작용을 필요로 하지 않는다. 결과적으로, 상기 호스트 컴퓨터(28)는 상호 작용이 요구되는 바로 그 순간에 상호 작용할 필요가 없다. 이 방식으로, 상기 스트림의 실시간 특성이 유지되고 호스트 로드는 최소값으로 유지된다.
상기 낮은 우선순위의 섹션은 예컨대 32개의 트래픽 등급들로 구성되며, 이때 한 등급은 동일한 PCR(Peak Cell Rate)을 가진 하나 또는 그이상의 스트림들의 그룹이다. 일반적인 데이터 트래픽의 견지에서, 실시간 제한 요인들은 훨씬 덜 중요하다. 상기 낮은 우선순위 섹션의 트래픽 형성의 주된 목적은 통신망 폴리싱(network policing)을 피하기 위해 상기 PCR을 제한하는 것이다. 상기 데이터 패킷들의 트래픽 형성이 이상적 스케쥴 시간 TS 및 이 TS에 대한 증분Δ을 사용한 메타니즘에 의해 실행되며, 이는 높은 우선순위 섹션에서의 기본 트래픽 형성 메카니즘과 유사하다. 그러나, 데이터 패킷들의 스케쥴링은 실시간 트래픽보다 비교적 낮은 우선순위를 갖는다. 단지 상기 높은 우선순위 섹션의 데이터 스트림이 비워질 경우에만, 상기 데이터 패킷들의 스트림이 상기 ATM FIFO(72)에 제공될 수 있다.
상기 메카니즘이 도 10에 도시된 아키텍처에 의해 실행된다. 상기 트래픽 형성기(62)는 앞서 언급한 바와 같이 높은 우선순위 섹션(200) 및 낮은 우선순위 섹션(202)으로 이루어진다.
상기 높은 우선순위 섹션(200)에 있어서, 메모리(203)는 상기 호스트 컴퓨터(28)로부터 제공된 각각의 등급에 대한 새로운 전송 파라미터 세트를 기억한다. 각각의 새로운 전송 파라미터 세트들은 TSi, ΔHi, ΔLi, NHi, NLi, 및 Pti(이때, 0≤i≤127)로 이루어져있다. 이 실시예에 있어서, Pti는 등급 i에 속하는 하나 또는 그 이상의 스트림들을 나타내는 하나 또는 그 이상의 스트림 포인터들을 포함한다. 메모리(206)는 현재의 전송 파라미터들을 기억한다. 한 명령어가 상기 호스트 컴퓨터(28) 또는 상기 명령어 블록(66)에 의해 지시될 때, 갱신 논리(204)가 상기 명령어에 의해 트리거되며, 그에 따라 상기 메모리(206)내의 현재 존송 파라미터들이 메모리(203)내의 새로운 전송 파라미터들로 갱신된다. 한 레지스터(212)가 상기 호스트 컴퓨터(28)로부터의 등급의 수를 나타내는 파라미터 Nr_등급들의 수신시 이 Nr_등급들을 기억한다. 트래픽 논리(208)는 0에서 Nr_등급들-1까지의 각각의 등급에 대해 TSi가 한 기준 클럭(210)에 의해 표시된 현재의 시간과 일치하거나 또는 그 보다 짧은지 여부를 체크한다. 그럴 경우, 이 등급 i에 속하는 제 1 스트림의 스트림 포인터가 높은 우선 순위의 전송 큐(216)에 삽입되고 상기 메모리(206)내의 TSi는 상기 트래픽 논리(208)에 의해 이 등급 i의 ΔHi또는 ΔLi만큼 증가된다. 상기 ΔHi및 ΔLi는 상기 NHi및 NLi에 따라 교대로 나타난다. 그후 분할 블록(70)은 상기 높은 우선 순위 전송 큐(216)로부터 스트림 포인터를 수신하며 상기 스트림 포인터에 의해 표시된 스트림에 속하는 ATM 쎌을 ATM FIFO(72)에 위치시킨다.
낮은 우선순위의 섹션(202)에 있어서, 한 메모리(218)는 상기 호스트 컴퓨터(28)로부터 제공된 각 등급에 대해 한 세트의 전송 파라미터들을 기억한다. 이 실시예에 있어서, 각각의 전송 파라미터 세트는 TSj, Δj, 및 Ptj(이 때, 0≤j≤31)로 이루어진다. 이 때 Ptj는 등급 j에 속하는 하나 또는 그 이상의 스트림들을 나타내는 하나 또는 그 이상의 스트림 포인터들을 나타낸다. 트래픽 논리(220)는 TSj가 기준 클럭(210)에 의해 표시된 현재의 시간에 일치하거나 그 보다 짧은지 여부를 0에서 31까지의 각각의 등급을 체크하며, 높은 우선 순위의 전송 큐(216)가 비워져 있는 곳을 모니터한다. 그럴 경우, 이 등급 j에 속하는 제 1 스트림이 스트림 포인터는 낮은 우선순위 전송 큐(222)에 삽입되며, 메모리(218)내의 TSj는 트래픽 논리(220)에 의해 이 등급 j의 Δj만큼 증가된다. 그후, 상기 본할 블록(70)은 상기 낮은 우선순위의 전송 큐(222)로부터 스트림 포인터를 수신하고 이 스트림 포인터에 의해 표시된 스트림에 속하는 ATM 쎌을 ATM FIFO(72)에 위치시킨다.
상기 실시예에 있어서, 높은 우선순위 섹션(200)의 메카니즘과 유사한 트래픽 형성 메카니즘이 낮은 우선순위 섹션(202)에 인가된다. 그러나, 종래의 리키형(leaky) 버킷 메카니즘이 상기 낮은 우선순위 섹션(202)의 트래픽 형성 메카니즘에 인가된다.
명령어 블록
실시간 데이터 전달은 종종 출력 데이터 스트림내의 특정 위치에서 발생하는 동작들을 포함한다. 이들 동작은 스트림의 완전성을 유지하기 위해 즉각적인 것이 되어야만 한다. 상기 호스트 컴퓨터(28)의 많은 의무로 인해, 적시의 상호 동작이 항상 보장될 수는 없다. 양호한 실시예에 있어서, 이들 상호 동작들을 실행하는 것이 당해 명령어 블록(66)의 의무이다. 원칙적으로, 상기 호스트 컴퓨터(28)는 출력 데이터 스트림 어디에서 스트리밍 파라미터들이 조정될 필요가 있는지 정확히 알고 있다. 각각의 스트림 버퍼(44)가 상술된 바와 같이 정적으로 할당되므로, 스트림 버퍼(44)의 판독 포인터에 의해 상기 동작들이 취해져야하는 위치를 표현하는 것이 가능하다. 상기 호스트 컴퓨터(28)는 시간적으로 적절한 순간에 다수의 지시들로 상기 명령어 블록(66)의 리스트를 로딩한다. 적절한 시간은 상기 출력 데이터 스트림의 스트림 버퍼(44)로의 로딩과 상기 출력 데이터 스트림의 상기 스트림 버퍼(44)로부터의 송출 시간사이의 시간이다. 상기 명령어 블록(66)은 상기 스트림 버퍼(44)의 판독 포인터를 주사한다. 특정 어드레스와의 정합이 발견될 경우, 이 어드레스와 관련된 명령어가 실시되며, 이 명령어는 상기 명령어 블록(66)으로부터 제거될 것이다.
상기 명령어 블록(66)은 상기 스트림 버퍼(44)를 떠나는 데이터의 어드레스에서 트리거한다. 스트림 버퍼(44) 판독시, 상기 판독 포인터가 점진적으로 랩-어라운드(wrap-around)식으로 증가된다. 각각의 스트림은 상기 어드레스에 따라 기억 될 쌍(어드레스, 명령어)을 포함하는 관련 리스트를 갖는다. 한 어드레스는 해당 파일내에서 어드레스를 나타내는 쌍(L, M)이며 물리적 어드레스와는 무관하다. L은 스트림 버퍼(44)의 크기에 일치하는 블록 크기를 가진 블록들의 수이다. M은 최종 블록에서의 시퀀스 수이다. 각각의 스트림은 판독 포인터가 랩어라운드되는 횟수를 카운트하는 WAC(Wrap-around counter)를 유지한다. L=WAC인지 여부와 M=판독 포인터-버퍼 오프셋인지 여부를 나타내는 어드레스 정합이 발견된다.
이 메카니즘은 다음과 같이 실시된다.
도 11는 상기 명령어 블록(66)의 블록도이다. 이 명령어 블록(66)은 여러 명령어 발생기(300)로 이루어져 있다. 각각의 명령어 발생기(300)는 각각의 출력 데이터 스트림에 대한 명령어들을 처리한다. 상기 호스트 컴퓨터(28)는 각각의 명령어 발생기(300)내의 명령어 레지스터(316)내의 명령어 리스트를 적절한 시간에 로딩시킨다.
한 명령어 발생기(300)에서, 레지스터(302)는 버퍼 오프셋을 기억한다. 비교기(304)는 상기 레지스터(302)내의 버퍼 오프셋을 스트림 버퍼(44)의 판독 포인터와 비교한다. 한 랩-어라운드가 발생할 때, 상기 판독 포인터는 이 버퍼 오프셋을 취한다. 그러므로, 정합이 상기 비교기(304)에 의해 검출될 때, WAC(Wrap-around counter)(306)가 증가된다. 비교기(308)는 상기 WAC(306)의 카운트를 상기 명령어 레지스터(316)로부터 제공된 현재의 L과 비교한다. 비교기(310)는 명령어 레지스터(316)로부터 제공된 현재의 M을 판독 포인터-버퍼 오프셋과 비교한다. 상기 비교기(308) 및 비교기(310)에 의해 정합들이 검출될 때, AND 게이트(312)는 큐(314)에 의해 기억된 현재의 명령을 디큐(deque)한다. 현재의 어드레스(L, M)에 해당하는 현재의 명령어가 발견될 때마다, 해당 어드레스에 연결된 명령어가 큐(314)로부터 출력될 때마다, 그 다음 어드레스에 해당하는 명령어가 명령어 큐(314)에 의해 레지스터(316)로부터 큐잉된다. 따라서 각각의 명령어 발생기(300)가 상기 스트림 버퍼(44)의 판독 포인터에 따라 명령을 지시한다.
상기 명령어 블록(66)으로부터 지시될 명령어는 다음과 같다.
Change bit rate : 이 명령어는 스트림 대폭을 변화시킬 것을 허용할 것이다. 이 명령어가 지시될 때, 상기 트래픽 형성기(62)는 자체 현재 등급으로부터 하나의 스트림을 분리시키며, 현재의 등급에 대한 Δ값들을 갱신하며, 이 스트림을 새로운 등급에 부가시키며, 새로운 등급의 관련 Δ값들을 갱신한다. 따라서 각각의 스트림들의 비트율이 특정 스트림 위치들에서 변화된다. 이것은 예컨대 VBR의 MPEG 비트율에 유용하다.
Insert RCI : 이 명령어는 스트림의 특정 위치에 RCI(Rate Change Indicator)를 삽입할 것을 허용한다. 상기 RCI는 멀리 있는 단자(예를 들면, STB(18))에 그 순간의 비트율 변화들을 알릴수 있으며 따라서 MPEG 디코더들에 대한 클럭 회수를 도와준다. 상기 RCI의 상세한 설명이 유럽 특허 출원 제 EP 0 712 250 A2호에서 데이타율 데이터로 기술된다. 이 명령이 지시될 때, RCI 발생기(68)는 RCI를 발생시키며 상기 분할 블록(70)은 현재의 분할을 종료하고 상기 RCI에 대한 분리된 AAL-5 PDU(하나의 TAM 쎌)가 발생된다. 이것은 VBR의 MPEG 비트 스트림에 유용하다.
Enable RAID : 이 명령어는 에러 정정을 위한 Tx RAID 블럭(60)에서 적절한 파라미터들을 설정한다.
Disable RAID : 이 기능은 상기 Enable RAID와 정반대이다.
Perform Byte Swap : 이 명령어는 서버(10)와 STB(18)사이에서 작은 인다이안(endiam)/큰 인다이안 문제를 해결할 것을 허용한다. 이 명령어가 지시될 때, 바이트 교체기(64)가 도 12에 도시된 출력 스트림에서의 워드 350의 바이트들을 워드 352의 순으로 재정렬한다.
Enable different PDU-size : TCP는 분할을 필요로 할 수 있다. 하나의 TCP 패킷이 서로 다른 IP-패턴들로 분할될 것이다. 최종 IP 패킷은 통상적으로 이전의 패킷과는 상이한 AAL-5 PDU 크기를 요구한다. 이 명령이 지시될 때, 상기 분할 블록(70)은 상기 AAL-5 PDU 크기를 변화시킨다.
Interrpt CPU : 이것은 가장 일반적인 기능이다. 이것은 스트림에서의 한 위치의 검출시 상기 호스트 CPU(30)의 상호 동작을 요구한다.
VPI/VCI 필터링 블록
도 13은 UNI(User Network Interface)에서 사용된 하나의 ATM 쎌의 포맷을 도시한다. 하나의 ATM 쎌은 53 바이트로 이루어진다. 첫번째 5 바이트는 ATM 헤더를 구성하며 나머지 48 바이트는 페이로드를 전달한다. 상기 ATM 헤더에서 첫 번째 4 비트는 GFC(Generic Flow Control)로 불린다. 상기 ATM 헤더에서의 다음의 24 비트는 VPI/VCI로 불린다. 사실상, 상기 VPI/VCI는 8 비트의 VPI와 16 비트의 VCI로 이루어져 있다. 상기 ATM 헤더에서의 다음의 3 비트는 PT(Payload Type)로 불린다. 상기 ATM 헤더에서의 다음의 1 비트는CLP(Cell Loss Priority)로 불린다. 상기 ATM에서의 최종 8비트는 HEC(Header Error Control)로 불린다. 상기 VPI/VCI 필터링 블록(84)은 ATM FIFO(82)로부터 위와 같은 ATM 쎌들을 수신한다.
상기 VPI/VCI 필터링 블록(84)은 수신된 ATM 쎌의 VPI/VCI가 받아들여져야 하는 VPI/VCIs 세트의 한 요소인지 여부를 결정하고, 상기 ATM 쎌이 어느 스트림에 속하는지를 결정하며, OAM(Operation, Administration, 및 Maintenance) F5 쎌을 필터링한다. 이 필터링 프로세스를 실행하기 위해, VPI/VCI로부터 내부 ID로의 VPI/VCI 변환이 상기 VPI/VCI 변환이 상기 VPI/VCI 필터링 블록(84)내의 VPI/VCI 변환기(85)에서 실행된다.
VPI/VCI 변환 메카니즘의 목적은 가능한 한 넓은 범위의 VPI/VCIs를 허용하는 반면, 동시에 고속 변환을 용이하게 하는 것이다. 양호하게도, 모든 VPI/VCIs는 허용가능한 것이어야 한다. VPI/VCI 변환은 종래의 2진 검색 기술을 사용하여 이루어질 수 있다. 그러나, 시간적 제한 요인들로 인해, 가장 크레 받아들일 수 있는 검색은 512 엔트리들의 2진 검색이다. 한편, 활성 VPI/VCIs의 최대 수는 많은 수의 고개들과의 동시 통신을 지원하기 위해 512보다 커야 한다.
상기 목적을 만족시키기 위해, VPI/VCI 테이블은 512 엔트리들의 섹션으로 분배된다. 각각의 엔트리는 한 VPI/VCI와, 분배 메카니즘에 의거한 한 섹션과 엔트리들이 정렬되는 각각의 섹션으로 엔터링되는 내부 스트림 ID사이의 관계를 나타낸다.
ATM 쎌의 수신시, 일단 정확한 섹션이 발견되면, 정확한 엔트리를 찾기 위해 상기 섹션에 걸쳐 2진 검색이 실행될 수 있다. 그러므로, 상기 VPI/VCIs를 분배하기 위한 분배 메카니즘은 상기 VPI/VCI에 따른 섹션으로의 즉각적인 인덱싱을 허용해야만 한다. 더욱이, 상기 VPI/VCI 테이블의 효과적인 사용을 허용하기 위해, 상기 메카니즘은 넓은 범위에 걸친 VPI/VCI의 분배를 허용해야만 한다. 다시 말해, 상기 메카니즘은 전체 VPI/VCI 테이블에 걸쳐 가능한 한 임의적으로 상기 엔트리들을 분배해야만 한다. 한 VPI/VCI가 이미 채워져 있는 한 VPI/VCI 테이블의 한 섹션으로 맵핑할 경우, 이것은 다른 섹션들내에 공간이 존재할 수 있을 지라도 거절되어야만 한다.
상기 요구 조건들에 부합하는 분배 메카니즘은 상기 VPI/VCI 테이블로의 인덱싱을 위한 해시 키(hash key)로서 상기 VCI의 비교적 하위 X(이때, X는 정수, 예를 들면, 3)를 사용하는 것이다. 많은 수의 활성 VP/VCs가 존재할 때 비교적 하위 비트들이 24 비트 VPI/VCI 필드중 가장 랜덤한 것이 될 것이며 따라서 우수 분배를 허용할 것이라는 것이 인지된다.
이 형태의 메카니즘을 사용하므로써, 고속의 탐색 및 어떠한 비합법적이거나 또는 허용할 수 없는 VPI/VCIs의 요구 조건들이 만족된다. 이 메카니즘은 다음과 같이 실시된다.
도 14는 상기 VPI/VCI 변환기(85)의 블록도이다. 새로운 VP/VC가 활성이 될때, 이 새로운 VP/VC의 VPI/VCI 및 상기 VPI/VCI에 해당하는 내부 스트림 ID를 나타내는 새로운 엔트리가 한 해시 기능부(400)를 거쳐 상기 VCI의 비교적 하위 3(즉, 도13에서 제 4 바이트의 비트들 7, 6, 5)에 해당하는 섹션에 엔터링된다. 특히, 상기 VCI의 하위 3 비트가 001일 경우, 상기 엔트리는 VPI/VCI 테이블(402)의 섹션 2에 기억된다. 상기 VCI의 하위 3 비트가 010일 경우, 상기 엔트리는 상기 VPI/VCI 테이블(402)의 섹션 3에 기억된다. 마찬가지로, 모든 새로운 엔트리들이 상기 VCI의 하위 3 비트들에 따른 적절한 섹션들내에 저장된다. 따라서, 예컨대 4096개의 엔트리를 가진 VPI/VCI 테이블(402)이 예컨대 512개의 엔트리를 가진 8개의 섹션들(섹션1-8)로 분배된다. 각각의 섹션에서 상기 엔트리들은 2진 검색을 실시하기 위해 올림순 또는 내림순으로 재정렬된다.
한 ATM 쎌의 수신시, 수신된 ATM 쎌의 VPI/VCI가 2진 검색 엔진(420) 및 해시 기능부(400)에 제공된다. 상기 해시 기능부(400)는 상기 2진 검색 엔진(420)에 대해 상기 VPI/VCI의 하위 3 비트들에 의거한 섹션 인덱스를 제공한다. 그때, 2진 검색은 정확한 엔트리를 찾기 위해 상기 섹션 인덱스에 해당하는 섹션에 걸쳐 실행된다. 예컨대, 수신된 ATM 쎌의 VCI의 하위 3 비트들이 010일 경우, 해시 기능부(400)는 2진 검색 엔진(420)에 대한 섹션 인덱스로서 3을 제공한다. 그때, 상기 검색 엔진(420)은 정확한 엔트리를 찾기위해 상기 섹션 3상에서 2진 검색을 실행하며 발견된 엔트리의 내부 IC를 출력한다. 상기 수신된 ATM 쎌의 VCI의 하위 3비트들이 111일 경우, 상기 해시 기능부(400)는 상기 검색 엔진(420)에 대한 섹션 인덱스로서 8을 제공한다. 그 때, 상기 검색 엔진(420)은 정확한 엔트리를 찾기위해 섹션 8에 걸쳐 2진 검색을 실행하며 상기 발견된 엔트리의 내부 스트림 ID를 출력한다. 상기 내부 ID는 필터링 프로세스에 사용된다.
상기 실시예에서, 상기 VPI/VCI 필드의 하위 3 비트는 간단히 섹션 인덱스로 사용된다. 그러나, 보다 복잡한 해시 기능부가 하나의 섹션 인덱스를 발생시키기 위해 상기 VPI/VCI 필드에 걸쳐 사용될 수도 있다.
상기 실시예에 있어서, 새로운 VP/VC가 활성이 될 때, 새로운 엔트리가 해시 기능부(400)를 거쳐 적절한 섹션으로 엔터링된다. 그러나, 해시 기능부(400)와 동일한 메카니즘의 해시 기능부를 가진 호스트 컴퓨터(28)내에 새로운 엔트리를 포함하는 새로운 VPI/VCI 테이블을 형성하고, 이 새로운 VPI/VCI 테이블을 VPI/VCI 변환기(85)로 전달하며, 상기 VPI/VCI 테이블(402)을 새로운 VPI/VCI 테이블로 갱신하는 것이 가능하다.
패턴 검출기
상기 호스트 컴퓨터(28)는 어떤 종류의 데이터가 한 특정 VC를 거쳐 입력되고 있는 지를 알고 있다. 상기 호스트 컴퓨터(28)는, VC에 대하여, 패턴 검출기(92)에, 어떤 패턴이 주사될 것인지 지시한다. 상기 패턴 검출기(92)의 목적은 입력 데이터 스트림내에서 한 프리셋 비트 페턴을 검출하는 것이다. 정합이 발견될 때마다, 상기 패턴 검출기(92)는 상기 호스트 컴퓨터(28)에 데이타 검출상태임을 알린다. 상기 호스트 컴퓨터(28)가 검출 정보를 수신할 때, 이것은 이 정보가 발생하는 어드레스를 호스트 메모리(32)내의 리스트에 부가시킨다. 상기 검출이 자동으로 실행됨에 따라, 상기 호스트 컴퓨터(28)는 그 동안 다른 작업들을 실행할 수 있다. 상기 호스트 컴퓨터(28)는 단지 상기 프리-세트 비트 패턴이 검출되고 이 동작이 취해질 수 있는 경우에만 중단될 필요가 있다.
도 15는 패턴 검출기(92)의 블록도이다. 인입 데이터 스트림이 상기 수신 경로(80)를 통해 전송되기 전, 상기 호스트 컴퓨터(28)는 상기 패턴 검출 제어기(506)에, VC에 대해, 어떤 패턴이 주사되는지 지시한다. 상기 패턴 검출 제어기(506)는 각각의 스트림에 대한 레지스터(504)에서 32비트 폭을 가진 4개의 사전-프로그래밍된 비트 패턴을 설정할 수 있다. 얼라인먼트 회로(500)가 입력 데이터 스트림의 바이트 정렬을 실행한다. 상기 정합 회로(502)가 스트림에 대해 4개의 사전-프로그래밍된 비트 패턴들에 대한 바이트 정렬 정합을 실행한다. 상기 정합이 검출될 때마다, 정합 회로(502)가 제어기(506)에 상기 검출을 통보한다.
패턴 검출기(92)의 목적의 한 예는 MPEG 표준에 따라 압축된 비디오 비트 스트림에서의 I-화상의 위치를 찾는 것이다. 상기 MPEG 비트 스트림에서, GOP 헤더 바로 다음의 화상은 항상 I-화상이다. 그러므로, GOP 헤더의 시작을 나타내는 group_ start_ code(32 비트) 및 화상 헤더의 시작을 나타내는 picture_ start_ code(32 비트)를 검출하므로써 I-화상의 위치를 찾는 것이 가능하다.
예컨대, 한 화상의 MPEG 비트 스트림이 당해 화상을 복제하기 위해 다른 SMU(12)로부터 전달될 때, group_ start_ code 및 picture_ start_ code가 프리세트 비트 패턴들로서 레지스터(504)에서 설정된다. 상기 패턴 검출기(92)는 수신된 MPEG 비트 스트림에서 group_ start_ code 및 picture_ start_ code를 검출한다. picture_ start_ code 가 정합 회로(502)에서 group_ start_ code의 검출 직후 검출될 때마다, 패턴 검출 제어기(506)는 이 검출 상태를 호스트 CPU(30)에 통보한다. 상기 호스트 CPU(30)는 I-화상이 기억되는 기억 장치(20)의 어드레스를 호스트 메모리(32)내의 리스트에 부가한다. 따라서, I-화상의 위치를 나타내는 리스트가 상기 MPEG 비트 스트림이 수신 경로(80)안에 흐르는 동안 구성된다.
상기 리스트는 기억된 MPEG 비트 스트림이 상기 STB(18)에 전달될 때 VCR 동작을 위해 사용된다. 상기 STB(18)가 VCR 동작(예를 들면, FF, FR)요청할 경우, 상기 호스트 컴퓨터(28)는 이 리스트를 참조하며 상기 기억 장치 제어기(22)에 상기 I-화상들에 액세싱하여 이를 회수할 것을 명령한다.
이 화상을 사용하여, 상기 기억 장치(20)내에 기억된 데이터가 특정의 응용을 위해 원형 그대로이거나 또는 포맷팅되지 않는다. 이것은 서버 시스템(10)(도 1)의 응용 독자성 및 상호 운용성을 증가시킨다.
Rx 어드레스 변환기
상기 Rx 어드레스 변환기(96)의 목적은 한 스트림 버퍼(96)로부터 서로 상이한(불연속적인)워드들을 모아 상기 PCI 버스(24)에 대해 버스트 데이터를 형성하는 것이다. 이것을 기본적으로 상기 Tx 어드레스 변환기(54)의 어드레스 변환 기능의 역 기능이다. 그 차이점은 이 경우에 있어서는 동적 버퍼 구조가 고려되어야만 한다는 것이다. 상기 버스트 데이터는 상기 PCI 버스(24)를 거쳐 상기 기억 장치(20) 또는 상기 호스트 컴퓨터(28)로 전달된다.
도 16은 상기 기억 장치(20)의 Disk 0, 1, 2 및 3에 기억되어야 하는 입력 데이터 스트림에 적용되는 어드레스 변환의 한 예를 도시한다. 이 예에서, 상기 스트림 버퍼(48)에 대한 판독 어드레스들의 다음의 시퀀스가 한 버스트 데이터 600를 형성하도록 상기 RX 어드레스 변환기(96)에 의해 발생된다.
178, 182, 13, 17, 1099, 1103 (Disk 0에 대해)
179, 183, 14, 18, 1100, 1104 (Disk 1에 대해)
180, 184, 15, 19, 1101, 1105 (Disk 2에 대해)
181, 185, 16..... (Disk 3에 대해)
내용 없음

Claims (78)

  1. 한 ATM 쎌의 VPI/VCI를 내부 ID로 변환시키기는 방법에 있어서, VPI/VCI 엔트리들을 각 VPI/VCI 엔트리부분에 따른 테이블내의 섹션들로 분산시키는 단계와;
    한 ATM 쎌을 수신하는 단계와;
    상기 수신된 ATM 쎌의 VPI/VCI 부분에 따라 검색될 한 섹션을 선택하는 단계와;
    상기 수신된 ATM 쎌의 VPI/VCI에 대응하는 엔트리를 찾기 위해 상기 선택된 섹션에 걸쳐 검색을 실행하는 단계; 및
    발견된 엔트리에 대응하는 내부 ID를 출력하는 단계를 포함하는 것을 특징으로 하는 변환 방법.
  2. 제 1 항에 있어서, 상기 부분이 상기 VCl의 하위 X 비트들을 포함하는 것을 특징으로 하는 변환 방법.
  3. 제 1 항에 있어서, 상기 엔트리들이 각 섹션내에서 정렬 방식으로 기억되고 상기 검색이 2진 검색인 것을 특징으로 하는 변환방법.
  4. 한 ATM 쎌의 한 VPI/VCI를 내부 ID로 변환시키는 장치에 있어서,
    VPI/VCI 엔트리들을 기억하며 섹션들로 분할되는 테이블과;
    상기 VPI/VCI 엔트리들을 각 VPI/VCI 엔트리부분에 따른 테이블내의 섹션들로 분산시키는 수단과;
    한 수신된 ATM 쎌의 VPI/VCI 부분에 따라 검색될 한 섹션을 선택하는 수단; 및
    상기 수신된 ATM 쎌의 VPI/VCI에 대응하는 한 엔트리를 찾기 위해 상기 선택된 섹션에 걸쳐 검색을 실행하고 발견된 엔트리에 대응하는 내부 ID를 출력하는 수단을 구비하는 것을 특징으로 하는 변환 장치.
  5. 제 1 항에 있어서, 상기 부분이 상기 VCl의 하위 X 비트들을 포함하는 것을 특징으로 하는 변환 장치.
  6. 제 1 항에 있어서, 상기 엔트리들이 각 섹션내에서 정렬 방식으로 기억되고 상기 검색이 2진 검색인 것을 특징으로 하는 변환장치.
  7. ATM 통신망에 대해 데이터를 전송하고 이 ATM 통신망으로부터 데이터를 수신하는 장치에 있어서,
    (a) 호스트 컴퓨터, 기억 장치, 및 본 장치사이의 버스 서포트 통신부와 인터페이싱하는 버스 인터페이스와;
    (b) 상기 ATM 통신망과 인터페이싱하는 ATM 인터페이스와;
    (c) 상기 버스 인터페이스로부터의 출력 데이터를 상기 ATM 인터페이스로 전송하는 전송 유닛으로서,
    (1) 상기 버스 인터페이스로부터의 출력 데이터를 버퍼링하는 버퍼로 사용되고 있는 RAM 과 인터페이싱하는 제 1 RAM 인터페이스와;
    (2) 상기 버퍼로부터의 출력 데이터를 출력 ATM 쎌들내로 분할하는 수단; 및
    (3) 상기 분할 수단과 협력하여 상기 ATM 인터페이스에 대한 출력 ATM 쎌들의 트래픽을 제어하는 트래픽 형성기를 포함하는 전송 유닛; 및
    (d) 상기 ATM 인터페이스로부터의 입력 데이터를 상기 버스 인터페이스로 전송하는 수신 유닛으로서,
    (1) 인입 ATM 쎌들의 VPI/VCI 필터링을 실행하는 수단과;
    (2) 인입 ATM 쎌들의 페이로드(payload)를 사용하여 입력 데이터를 재어셈블링하는 수단; 및
    (3) 상기 재어셈블링 수단의 입력 데이터를 버퍼링하는 버퍼로 사용되고 있는 RAM과 인터페이싱하는 제 2 RAM 인터페이스를 포함하는 수신 유닛을 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  8. 제 7 항에 있어서, 상기 전송 유닛이 최소한 한 쌍의 어드레스 및 명령어를 기억하고, 상기 어드레스와 상기 버퍼의 판독 포인터에 의해 지정된 어드레스사이의 정합을 검출하는 명령어 블록으로서, 상기 어드레스 및 명령어가 상기 호스트 컴퓨터로부터 로딩되고, 상기 명령어는 상기 정합이 검출될 때 실행되는 명령어 블록을 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  9. 제 8 항에 있어서, 상기 트래픽 형성기가 상기 명령어에 따라 상기 출력 ATM 쎌들의 스트림 대폭을 변화시키는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  10. 제 8 항 또는 제 9 항에 있어서, 상기 전송 유닛이 Rate Change Indicator를 상기 명령어에 따라 상기 버퍼로부터 판독된 출력 데이터내에 삽입시키는 수단을 구비하는 것을 특징으로 하는 데이터 송출 및 수신장치.
  11. 제 8 항 또는 제 9 항에 있어서, 상기 명령어가 상기 호스트 컴퓨터의 중단을 일으키는 것을 특징으로 하는 데이터 송출 및 수신장치.
  12. 제 8 항 내지 제 11 항중 어느 한 항에 있어서, 상기 전송 유닛이 상기 명령어에 따라 상기 버퍼로부터 판독된 출력 데이터의 바이트들을 교체하는 수단을 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  13. 제 8 항 내지 제 12 항중 어느 한 항에 있어서, 상기 분할 수단이 상기 버퍼로부터 판독된 출력 데이터에 대해 PDUs에 의한 AAL 분할을 적용하며 상기 명령어에 따라 상기 PDU-크기를 변화시키는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  14. 제 7 항 내지 제 13 항중 어느 한 항에 있어서, 상기 전송 유닛이 상기 기억 장치로부터의 버스트 데이터에 대해 최소한 일부분이 불연속인 기록 어드레스들을 제공하는 어드레스 변환기를 제공하며 상기 버퍼가 상기 기록 어드레스들에 따라 상기 버스트 데이터를 기억하고, 상기 버퍼로부터 선형 방식으로 데이터를 출력해내는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  15. 제 14 항에 있어서, 상기 버스트 데이터가 소정의 프로토콜에 대한 페이로드를 포함하고, 상기 어드레스 변환기가 상기 호스트 컴퓨터로부터 최소한 상기 페이로드의 크기를 포함하는 패킷화 파라미터들을 수신하고 상기 소정의 프로토콜의 프로토콜 헤더에 대한 공간이 상기 패킷화 파라미터들에 따라 상기 버퍼내에 준비되도록 기록 어드레스들을 발생시키며, 상기 버퍼가 상기 버스를 거쳐 상기 호스트 컴퓨터로부터 버스트 형태로 상기 프로토콜 헤더를 수신하며, 상기 준비된 공간내에 상기 프로토콜 헤더를 기억하는 것을 특징으로하는 데이터 송출 및 수신 장치.
  16. 제 15 항에 있어서, 상기 패킷화 파라미터들이 상기 프로토콜 헤더의 크기를 포함하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  17. 제 15 항 또는 제 16 항에 있어서, 상기 소정의 프로토콜이 TCP(또는 UDP) 및/또는 IP인 것을 특징으로 하는 데이터 송출 및 수신 장치.
  18. 제 15 항, 제 16 항, 또는 제 17 항에 있어서, 상기 전송 유닛이 상기 호스트 컴퓨터에 의해 계산된 부분 검사 합을 수신하고, 완전한 검사 합을 얻기위해 상기 부분 검사 합을 갱신하며, 상기 프로토콜 헤더 및 상기 페이로드가 상기 버퍼내에 기록되었을 때 상기 완전한 검사 합을 상기 버퍼내의 프로토콜 헤더내에 필링하는 수단을 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  19. 제 7 항 내지 제 18 항에 있어서, 상기 트래픽 형성기가, 각각 동일한 비트율 특성들을 가진 하나 또는 그 이상의 스트림들을 포함하는 하나 또는 그 이상의 등급들로 상기 ATM 쎌들의 하나 또는 그 이상의 제 1 스트림들을 분류하는 수단과 각각의 등급에 대한 비트율을 제어하기 위해 한 세트의 파라미터들을 기억하는 기억 수단 및 상기 기억 수단안의 파라미터 세트들에 따라 각 등급의 비트율 페이싱을 실시하기 위한 수단을 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  20. 제 19 항에 있어서, 상기 파라미터들이 이상적 스케쥴링 시간 및 이 이상적 스케쥴링 시간에 대한 증분을 포함하며, 상기 실행 수단이 한 등급에서 현재 스트림의 ATM 쎌이 전송 큐 상태로 될 때 상기 이상적 스케쥴링 시간을 상기 증분만큼 증가시키고 한 기준 클럭을 상기 증가된 이상적 스케쥴링 시간과 비교하며, 상기 증가된 이상적 스케쥴링 시간이 상기 기준 클럭과 일치하거나 그보다 짧을 때 상기 등급에서 그 다음 스트림의 ATM 쎌을 전송 큐 상태로 하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  21. 제 20 항에 있어서, 각 등급의 증가가 두 개의 선택 값을 가지며, 그 중 한값은 원하는 비트율보다 높은 비트율을 나타내고 다른 한 값은 상기 원하는 비트율 보다 낮은 비트율을 나타내며, 상기 실행 수단이 상기 증가 값들을 교대로 나타내는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  22. 제 19 항, 제 20 항, 또는 제 21 항에 있어서, 상기 증분이 동일한 등급에 속하는 스트림들의 쎌들이 일정한 간격을 갖도록 한 값을 취하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  23. 제 19 항 내지 제 22 항중 어느 한 항에 있어서, 상기 제 1 스트림이 높은 우선순위를 가지며, 상기 트래픽 형성기가 리키형(leaky)의 버킷 메카니즘에 의해 낮은 우선순위를 가진 ATM 쎌들의 하나 또는 그 이상의 제 2 스트림들의 트래픽을 형성하는 수단을 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  24. 제 19 항 내지 제 22항중 어느 한 항에 있어서, 상기 제 1 스트림이 VBR 스트림을 포함하며, 상기 VBR 스트림의 비트율 특성이 변화할 때, 상기 분류 수단이 현재의 등급으로부터 상기 VBR 스트림을 분리시키고 상기 VBR 스트림을 새로운 등급에 부가시키며, 그에 따라 현재 등급 및 새로운 등급의 파라미터들이 갱신되는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  25. 제 7 항 내지 제 24 항중 어느 한 항에 있어서, 상기 VPI/VCI필터링을 실행하는 수단이 VPI/VCI 엔트리들을 기억하고 섹션들로 분리된 테이블과 VPI/VCI 엔트리들을 각각의 VPI/VCI 엔트리 부분에 따라 상기 테이블내의 섹션들로 분배하는 수단과 한 수신된 ATM 쎌의 VPI/VCI 부분에 따라 검색될 섹션을 선택하는 수단 및 상기 수신된 ATM 쎌의 VPI/VCI에 상당하는 엔트리를 찾기 위해 상기 선택된 섹션에 걸쳐 검색을 실행하고 이 발견된 엔트리에 상당하는 내부 ID를 출력해내는 수단을 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  26. 제 25 항에 있어서, 상기 부분이 상기 VCI의 하위 X 비트들을 포함하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  27. 제 25 항 또는 제 26 항에 있어서, 상기 엔트리들이 각 섹션내에 정렬된 방식으로 기억되고 상기 검색이 2진 검색인 것을 특징으로 하는 데이터 송출 및 수신장치.
  28. 제 7 항 내지 제 27 항중 어느 한 항에 있어서, 상기 수신 유닛이 상기 입력 데이터의 프로토콜 헤더에서의 검사 합을 확인하는 수단을 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  29. 제 7 항 내지 제 28 항중 어느 한 항에 있어서, 상기 수신 유닛이 상기 버스 인터페이스를 위한 버스트 데이터를 형성하기 위해 상기 버퍼로부터 불연속적인 워드들을 모으는 어드레스 변환기를 구비하는 것을 특징으로 하는 데이터 송출 및 수신 장치.
  30. 제 7 항 내지 제 29 항중 어느 한 항에 따른 장치, 응용들을 실행시키고 데이터의 전달을 관리하는 호스트와, 상기 입력 데이터를 기억시키고 상기 기억된 입력 데이터를 출력 데이터로서 회수하는 기억 장치, 및 버스를 구비하는 것을 특징으로 하는 시스템.
  31. 제 30 항에 있어서, 상기 기억 장치가 RAID 또는 RDI 시스템을 포함하고, 상기 전송 유닛이 RAID 중복성을 사용하여 상기 출력 데이터에서의 에러를 보정하며 상기 명령어에 따라 에러 보정을 실행할 것인지 여부를 변화시키는 RAID 기능을 포함하는 것을 특징으로 하는 시스템.
  32. 제 30 항 또는 제 31 항에 있어서, 상기 기억 장치가 RAID 또는 RDI 시스템을 포함하여 상기 버스트 데이터에서 인접한 워드들이 서로 다른 스트라이프 유닛에 속하는 것을 특징으로 하는 시스템.
  33. 제 30 항, 제 31 항, 또는 제 32 항에 있어서, 상기 수신 유닛이 상기 입력 데이터가 상기 ATM 인터페이스로부터 상기 버스 인터페이스로전송될 때 상기 입력 데이터내에서 최소한 하나의 프리셋 비트 패턴을 검출하는 패턴 검출기 및 상기 프리셋 비트 패턴이 상기 패턴 검출기에 의해 검출될 때 상기 데이터내의 프리셋 비트 패털의 위치에 상당하는 위치 정보를 기억하기 위한 리스트를 구비하고 상기 호스트 컴퓨터가 상기 리스트내의 위치 정보에 따라 상기 기억 장치로부터 상기 통신망으로의 데이터의 전달을 제어하는 것을 특징으로 하는 시스템.
  34. 제 33 항에 있어서, 상기 입력 데이터가 MPEG 표준에 압축된 비디오 데이터를 포함하며, 상기 위치 정보가 I-화상의 최소한 한 위치를 나타내고, 상기 호스트 컴퓨터가 상기 I-화상이 상기 위치 정보에 따라 액세싱되도록 상기 기억 장치를 제어하는 것을 특징으로 하는 시스템.
  35. 제 30 항 내지 제 34 항중 어느 한 항에 있어서, 상기 기억 장치가 RAID 또는 RDI 시스템을 포함하고, 상기 수신 유닛이 상기 입력 데이터에 대해 RAID 중복성을 부가하는 수단을 구비하는 것을 특징으로 하는 시스템.
  36. 제 7 항 내지 제 29 항중 어느 한 항에 따른 장치 및 제 30 항 내지 제 35 항중 어느 한 항에 따른 시스템을 사용하여 ATM 통신망을 전후하여 데이터를 송출/수신하는 방법.
  37. 한 기억 장치로부터 데이터를 스트리밍하는 방법에 있어서,
    한 버퍼에 대한 최소한 일부분이 불연속하는 버스트 데이터용 기록 번지들을 제공하는 단계와;
    호스트 컴퓨터, 기억 장치, 및 스트리밍 장치사이의 버스 서포트 통신부를 거쳐 상기 기억 장치로부터 버스트 데이터를 상기 버퍼로 전달하는 단계와;
    상기 기록 번지들에 따른 버퍼 내에 버스트 데이터를 기록하는 단계; 및
    선형 방식으로 상기 버퍼로부터 데이터를 판독하는 단계를 포함하는 것을 특징으로 하는 스트리밍 방법.
  38. 제 37 항에 있어서, 상기 버스트 데이터가 한 소정의 프로토콜에 대한 페이로드를 포함하여, 상기 호스트 컴퓨터로부터 최소한 페이로드의 크기를 포함하는 패킷화 파라미터들을 수신하는 단계와; 상기 소정의 프로토콜의 프로토콜 헤더에 대한 공간이 상기 패킷화 파라미터들에 따른 버퍼내에 준비되도록 상기 기록 어드레스들을 발생시키는 단계와; 상기 호스트 컴퓨터로부터 상기 버스를 거쳐 상기 버퍼로 버스트 형태로 상기 프로토콜 헤더를 전달하는 단계; 및 상기 프로토콜 헤더를 상기 버퍼내의 보정된 공간내에 기록하는 단계를 포함하는 것을 특징으로 하는 방법.
  39. 제 38 항에 있어서, 상기 패킷화 파라미터들이 상기 프로토콜 헤더의 크기를 포함하는 것을 특징으로 하는 방법.
  40. 제 38 항에 있어서, 상기 소정의 프로토콜이 TCP (또는 UDP) 및/또는 IP인 것을 특징으로 하는 방법.
  41. 제 38 항에 있어서, 상기 호스트 컴퓨터에 의해 계산된 부분 검사 합을 수신하는 단계와; 한 완전한 검사 합을 얻기 위해 상기 부분 검사 합을 갱신하는 단계; 및 상기 프로토콜 헤더 및 상기 페이로드가 상기 버퍼내에 기록되었을 때 상기 버퍼내에 상기 프로토콜 헤더내에 상기 완전한 검사 합을 필링시키는 단계를 포함하는 것을 특징으로 하는 방법.
  42. 제 37 항에 있어서, 상기 기억 장치가 RAID 또는 RDI 시스템을 포함하며, 상기 버스트 데이터내의 인접한 워드들이 서로 다른 유닛들에 속하는 것을 특징으로 하는 방법.
  43. 한 기억 장치로부터 데이터를 스트리밍하는 스트리밍 장치에 있어서,
    호스트 컴퓨터, 기억 장치, 및 스트리밍 장치사이의 버스 서포트 통신부를 거쳐 상기 기억 장치로부터 버스트 데이터를 수신하는 수단과;
    최소한 일부분이 불연속하는 버스트 데이터용의 기록 번지들을 제공하는 수단; 및
    상기 기록 번지들에 따라 버스트 데이터를 기억시키고 이로부터 선형 방식으로 데이터를 출력해내는 버퍼를 구비하는 것을 특징으로 하는 스트리밍 장치.
  44. 제 43 항에 있어서, 상기 버스트 데이터가 한 소정의 패킷화 프로토콜에 대한 페이로드를 포함하고 상기 제공 수단이 상기 호스트 컴퓨터로부터 최소한 상기 페이로드 크기를 포함하는 패킷화 파라미터들을 수신하며, 상기 소정의 프로토콜의 프로토콜 헤더에 대한 공간이 상기 패킷화 파라미터들에 따라 상기 버퍼내에 준비되도록 상기 기록 어드레스들을 발생시키고, 상기 버퍼가 상기 버스를 거쳐 상기 호스트 컴퓨터로부터 버스트 형태로 상기 프로토콜 헤더를 수신하며 상기 준비된 공간내에 상기 프로토콜 헤더를 기억시키는 것을 특징으로 하는 스트리밍 장치.
  45. 제 44 항에 있어서, 상기 패킷화 파라미터들이 상기 프로토콜 헤더의 크기를 포함하는 것을 특징으로 하는 장치.
  46. 제 44 항에 있어서, 상기 소정의 프로토콜이 TCP (또는 UDP) 및/또는 IP인 것을 특징으로 하는 장치.
  47. 제 44 항에 있어서, 상기 호스트 컴퓨터에 의해 계산된 부분 검사 합을 수신하고 한 완전한 검사 합을 얻기 위해 상기 부분 검사 합을 갱신하며 및 상기 프로토콜 헤더 및 상기 페이로드가 상기 버퍼내에 기록되었을 때 상기 버퍼내에 상기 프로토콜 헤더내에 상기 완전한 검사 합을 필링시키는 수단을 구비하는 것을 특징으로 하는 장치.
  48. 제 43 항에 있어서, 상기 기억 장치가 RAID 또는 RDI 시스템을 포함하며, 상기 버스트 데이터내의 인접한 워드들이 서로 다른 유닛들에 속하는 것을 특징으로 하는 장치.
  49. 데이터를 전달하는 방법에 있어서,
    호스트 컴퓨터로부터 최소한 한 쌍의 번지 및 명령어를 로딩하는 단계와;
    상기 데이터를 한 버퍼에 기억시키는 단계와;
    한 판독 포인터에 따라 상기 버퍼로부터의 상기 데이터를 판독해내는 단계와;
    상기 번지와 상기 판독 포인터에 의해 지정된 한 번지사이에 정합이 검출될 경우 상기 명령어를 실행하는 단계; 및
    상기 명령어의 실행 후 상기 버퍼로부터 판독된 데이터를 전달하는 단계를 포함하는 것을 특징으로 하는 전달 방법.
  50. 제 49 항에 있어서, 상기 명령어가 상기 버퍼로부터 판독된 데이터의 스트림 대폭의 변화를 일으키는 것을 특징으로 하는 방법.
  51. 제 49 항에 있어서, 상기 명령어가 상기 버퍼로부터 판독된 데이터로의 Rate Change Indicator의 삽입을 발생시키는 것을 특징으로 하는 방법.
  52. 제 49 항에 있어서, 상기 명령어가 상기 호스트 컴퓨터의 차단을 일으키는 것을 특징으로 하는 방법.
  53. 제 49 항에 있어서, 상기 데이터가 RAID 또는 RDI 시스템으로부터 판독되어 상기 버퍼에 제공되며, 상기 명령어가 에러를 보정하기 위해 RAID 기능을 인에이블링 및 디스에이블링시키는 것을 특징으로 하는 방법.
  54. 제 49 항에 있어서, 상기 명령어가 상기 버퍼로부터 판독된 데이터의 바이트 교체를 일츠키는 것을 특징으로 하는 방법.
  55. 제 49 항에 있어서, 상기 명령어가 상기 버퍼로부터 판독된 데이터에 대해 실행된 AAL 분할에 있어서의 PDU-크기의 변화를 일으키는 것을 특징으로 하는 방법.
  56. 데이터를 전달하는 장치에 있어서,
    호스트 컴퓨터로부터 로딩된 최소한 한 쌍의 번지와 명령어를 기억시키고 상기 번지와 데이터를 버퍼링하는 버퍼의 판독 포인터에 의해 지정된 한 번지사이의 정합을 검출하는 명령어 블록과;
    상기 정합이 검출될 때 상기 명령어 블록과 협력하여 상기 명령어를 실행하는 수단; 및
    상기 명령어의 실행 후 상기 버퍼로부터 판독된 데이터를 전달하는 수단을 구비하는 것을 특징으로 하는 전달 장치.
  57. 제 56 항에 있어서, 상기 실행 수단이 상기 명령어에 따라 상기 버퍼로부터 판독된 데이터의 스트림 대폭을 변화시키는 것을 특징으로 하는 장치.
  58. 제 56 항에 있어서, 상기 실행 수단이 상기 명령에 따라 상기 버퍼로부터 판독된 데이터로 Rate Change Indicator를 삽입시키는 것을 특징으로 하는 장치.
  59. 제 56 항에 있어서, 상기 명령어가 상기 호스트 컴퓨터의 중단을 일으키는 것을 특징으로 하는 장치.
  60. 제 56 항에 있어서, 상기 데이터가 RAID 또는 RDI로부터 판독되어 상기 버퍼로 제공되며 상기 실행 수단이 상기 명령어에 따라 에러 보정을 실행할 것인지 여부를 변화시키는 것을 특징으로 하는 장치.
  61. 제 56 항에 있어서, 상기 실행 수단이 상기 명령어에 따라 상기 버퍼로부터 판독된 상기 데이터의 바이트들을 교체하는 것을 특징으로 하는 장치.
  62. 제 56 항에 있어서, 상기 실행 수단이 상기 버퍼로부터 판독된 데이터에 대해 PDUs에 의해 AAL 분할을 적용하며 상기 명령어에 따라 상기 PDU-크기를 변화시키는 것을 특징으로 하는 장치.
  63. 데이터를 전달하는 방법에 있어서,
    한 통신망으로부터 데이터를 수신하는 단계와;
    상기 수신된 데이터가 한 기억 장치로 전송될 때 이 데이터내에서 최소한 하나의 프리셋 비트 패턴을 검출하는 단계와;
    상기 프리셋 비트 패턴이 검출될 때, 한 리스트에 대해, 상기 데이터에서의 프리셋 비트 패턴의 위치에 대응하는 위치 정보를 부가시키는 단계와;
    상기 기억 장치 내에 상기 데이터를 기억시키는 단계; 및
    상기 리스트에서의 상기 위치 정보에 따라 상기 기억 장치로부터 상기 통신망으로의 데이터의 전달을 제어하는 단계를 포함하는 것을 특징으로 하는 전달 방법.
  64. 제 63 항에 있어서, 상기 데이터가 MPEG 표준에 따라 압축된 비디오 데이터를 포함하며, 상기 위치 정보가 최소한 I-화상의 위치를 나타내며, 상기 제어 단계가 상기 위치 정보에 따라 상기 기억 장치내에 기억된 데이터의 I-화상을 액세싱하는 것을 포함하는 것을 특징으로 하는 전달 방법.
  65. 데이터 전달 장치에 있어서,
    한 통신망으로부터 데이터를 수신하는 수신 수단과;
    상기 데이터가 상기 수신 수단으로부터 이 데이터를 기억하는 기억 장치로 전송될 때 상기 데이터에서 최소한 하나의 프리셋 비트 패턴을 검출하는 패턴 검출기와;
    상기 프리셋 비트 패턴이 상기 패턴 검출기에 의해 검출될 때 상기 데이터에서의 프리셋 비트 패턴의 위치에 대응하는 위치 정보를 기억시는 리스트; 및
    상기 리스트에서의 위치 정보에 따라 상기 기억 장치로부터 상기 통신망으로의 데이터의 전달을 제어하는 수단을 구비하는 것을 특징으로 하는 전달 장치.
  66. 제 65 항에 있어서, 상기 데이터가 MPEG 표준에 따라 압축된 비디오 데이터를 포함하며, 상기 위치 정보가 최소한 I-화상의 위치를 나타내며, 상기 제어 수단이 상기 위치 정보에 따라 상기 I-화상을 액세싱되도록 상기 기억 장치를 제어하는 것을 포함하는 것을 특징으로 하는 전달 장치.
  67. 트래픽 형성 방법에 있어서,
    하나 또는 그 이상의 제 1 스트림들을 각각 동일한 비트율 특성들을 가진 하나 또는 그이상의 스트림들을 포함하는 하나 또는 그 이상의 등급들로 분류하는 단계와;
    각 등급에 대한 비트율을 제어하기 위해 한 파라미터 세트를 설정하는 단계; 및
    상기 파라미터 세트에 따라 각 등급의 비트율 페이싱(rate pacing)을 실행하는 단계를 포함하는 것을 특징으로 하는 트래픽 형성 방법.
  68. 제 67 항에 있어서, 상기 파라미터들이 이상적 스케쥴링 시간 및 이 이상적 스케쥴링 시간에 대한 증분을 포함하며 상기 실행 단계가; 한 등급에서의 현재 스트림의 쎌이 전송 큐 상태가 될 때 상기 이상적 스케쥴링 시간을 상기 증분만큼 증가시키는 단계와; 한 기준 클럭을 상기 증가된 이상적 스케쥴링 시간과 비교하는 단계; 및 상기 이상적 스케쥴링 시간이 상기 기준 클럭과 일치하거나 또는 그 보다 짧을 때 상기 등급에서의 그 다음 스트림의 쎌을 상기 전송 큐 상태로 하는 단계를 포함하는 것을 특징으로 하는 트래픽 형성 방법.
  69. 제 68 항에 있어서, 각 등급의 증가가 두 개의 선택 값을 취하고 상기 값들중 하나는 원하는 비트율보다 높은 비트율을 나타내고 다른 한 값은 원하는 비트율보다 낮은 비트율을 나타내며, 상기 실행 단계가 상기 증가 값들을 주기적으로 교대로 나타내는 것을 포함하는 것을 특징으로 하는 트래픽 형성 방법.
  70. 제 68 항에 있어서, 상기 증가 값이 동일한 등급에 속하는 스트림들의 쎌들이 일정한 간격으로 분리되도록 한 값을 취하는 것을 특징으로 하는 트래픽 형성방법.
  71. 제 67 항에 있어서, 상기 제 1 스트림들이 높은 우선순위를 가지며, 리키형 버킷 메카니즘에 의해 낮은 우선순위를 가진 하나 또는 그 이상의 제 2 스트림들의 트래픽을 형성하는 것을 특징으로 하는 트래픽 형성 방법.
  72. 제 67 항에 있어서, 상기 제 1 스트림들이 VBR 스트림을 포함하고, 상기 VBR 스트림의 비트율 특성이 변화할 때 현재의 등급으로부터 상기 VBR 스트림을 분리하는 단계와; 현재 등급의 파라미터들을 갱신하는 단계와; 상기 VBR 스트림을 새로운 등급에 부가시키는 단계; 및 상기 새로운 등급의 파라미터들을 갱신하는 단계를 포함하는 것을 특징으로 하는 트래픽 형성 방법.
  73. 트래픽 형성기에 있어서,
    하나 또는 그 이상의 제 1 스트림들을 각각 동일한 비트율 특성들을 가진 하나 또는 그 이상의 스트림들을 포함하는 등급들로 분류하는 수단과;
    각 등급에 대한 비트율을 제어하기 위해 한 파라미터 세트를 기억하는 기억 수단; 및
    상기 기억 수단에서의 파라미터 세트에 따라 각 등급의 비트율 페이싱을 실행하는 수단을 구비하는 것을 특징으로 하는 트래픽 형성기.
  74. 제 73 항에 있어서, 상기 파라미터들이 이상적 스케쥴링 시간 및 이 이상적 스케쥴링 시간에 대한 증분을 포함하여 상기 실행 수단이; 한 등급에서의 현재 스트림의 쎌이 전송 큐 상태가 될 때 상기 이상적 스케쥴링 시간을 상기 증분만큼 증가시키고; 한 기준 클럭을 상기 증가된 이상적 스케쥴링 시간과 비교하며, 상기 이상적 스케쥴링 시간이 상기 기준 클럭과 일치하거나 또는 그 보다 짧을 때 상기 등급에서의 그 다음 스트림의 쎌을 상기 전송 큐 상태로 하는 것을 특징으로 하는 트래픽 형성 장치.
  75. 제 74 항에 있어서, 각 등급의 증가가 두 개의 선택 값을 취하고 상기 값들 중 하나는 원하는 비트율보다 높은 비트율을 나타내고 다른 한 값은 원하는 비트율 보다 낮은 비트율을 나타내며, 상기 실행 수단이 상기 증가 값들을 주기적으로 교대로 나타내는 것을 포함하는 것을 특징으로 하는 트래픽 형성 장치.
  76. 제 74 항에 있어서, 상기 증가 값이 동일한 등급에 속하는 스트림들의 쎌들이 일정한 간격으로 분리되도록 한 값을 취하는 것을 특징으로 하는 트래픽 형성 장치.
  77. 제 73 항에 있어서, 상기 제 1 스트림들이 높은 우선순위를 가지며, 리키형 버킷 메카니즘에 의해 낮은 우선순위를 가진 하나 또는 그 이상의 제 2 스트림들의 트래픽을 형성하는 수단을 더 구비하는 것을 특징으로 하는 트래픽 형성 장치.
  78. 제 73 항에 있어서, 상기 제 1 스트림들이 VBR 스트림을 포함하고, 상기 VBR 스트림의 비트율 특성이 변화할 때 상기 분리 수단이 현재의 등급으로부터 상기 VBR 스트림을 분리하고, 상기 VBR 스트림을 새로운 등급에 부가시키므로써 상기 현재 등급의 파라미터들 및 새로운 등급이 갱신되는 것을 특징으로 하는 트래픽 형성 장치.
KR1019970065468D 1996-11-27 1997-11-27 데이터 서브 방법 및 장치 KR19980042942A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
EP19960203336 EP0847166B1 (en) 1996-11-27 1996-11-27 Method for traffic shaping and traffic shaper
EP96203334.6 1996-11-27
EP96203336.1 1996-11-27
EP19960203334 EP0845905B1 (en) 1996-11-27 1996-11-27 Apparatus for delivering data, including pattern detection
EP96203338A EP0847215A1 (en) 1996-11-27 1996-11-27 Method and device for delivering data and loading of a command
EP96203338.7 1996-11-27

Publications (1)

Publication Number Publication Date
KR19980042942A true KR19980042942A (ko) 1998-08-17

Family

ID=66096698

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970065468D KR19980042942A (ko) 1996-11-27 1997-11-27 데이터 서브 방법 및 장치

Country Status (1)

Country Link
KR (1) KR19980042942A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100733856B1 (ko) * 1999-12-30 2007-06-29 코닌클리케 필립스 일렉트로닉스 엔.브이. 데이터 스트림을 변환하는 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100733856B1 (ko) * 1999-12-30 2007-06-29 코닌클리케 필립스 일렉트로닉스 엔.브이. 데이터 스트림을 변환하는 방법 및 장치

Similar Documents

Publication Publication Date Title
KR100520321B1 (ko) 데이터 서브 방법 및 장치
US6466997B1 (en) Method and apparatus for performing TX raw cell status report frequency and interrupt frequency mitigation in a network node
US5970229A (en) Apparatus and method for performing look-ahead scheduling of DMA transfers of data from a host memory to a transmit buffer memory
US6122279A (en) Asynchronous transfer mode switch
US5664116A (en) Buffering of data for transmission in a computer communication system interface
US5796735A (en) System and method for transmission rate control in a segmentation and reassembly (SAR) circuit under ATM protocol
US5867480A (en) Method and apparatus for controlling congestion in a network node
JPH1079738A (ja) データ転送レート制御方法及びこれを用いたデータ転送レート制御装置
US5941952A (en) Apparatus and method for transferring data from a transmit buffer memory at a particular rate
EP0730380B1 (en) Data output device and data output method
US5822612A (en) Apparatus and method for managing schedule table pointers
US6067563A (en) Method and apparatus for avoiding control reads in a network node
US6115775A (en) Method and apparatus for performing interrupt frequency mitigation in a network node
US6597696B1 (en) Variable length packet switch
US5642347A (en) Approach to direct performing asynchronous transfer mode (ATM) adaptation layer 5 reassembly
EP0847166B1 (en) Method for traffic shaping and traffic shaper
CA2220129C (en) Method and apparatus for shaping processing in which discard of atm cell effectively performed
US6970457B1 (en) Data transmission apparatus for transmitting ATM data streams
KR19980042942A (ko) 데이터 서브 방법 및 장치
EP0847216A1 (en) Apparatus, system and method for sending/receiving data to/from an ATM-network
EP0847217A1 (en) Method and apparatus for translating VPI/VCI of an ATM cell into an internal ID
US5995995A (en) Apparatus and method for scheduling virtual circuit data for DMA from a host memory to a transmit buffer memory
EP0845905B1 (en) Apparatus for delivering data, including pattern detection
EP0847171A1 (en) Method and device for streaming data, including provision of write addresses
US6212567B1 (en) Method and apparatus for performing raw cell status report frequency mitigation on receive in a network node