KR100209834B1 - 데이터 통신 네트워크, 데이터 통신 시스템, 연속 미디어 내용 분배 방법 및 시스템, 연속미디어 내용 전송 방법 - Google Patents

데이터 통신 네트워크, 데이터 통신 시스템, 연속 미디어 내용 분배 방법 및 시스템, 연속미디어 내용 전송 방법 Download PDF

Info

Publication number
KR100209834B1
KR100209834B1 KR1019950025590A KR19950025590A KR100209834B1 KR 100209834 B1 KR100209834 B1 KR 100209834B1 KR 1019950025590 A KR1019950025590 A KR 1019950025590A KR 19950025590 A KR19950025590 A KR 19950025590A KR 100209834 B1 KR100209834 B1 KR 100209834B1
Authority
KR
South Korea
Prior art keywords
content
switch
video
preprocessed
packet
Prior art date
Application number
KR1019950025590A
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
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Application granted granted Critical
Publication of KR100209834B1 publication Critical patent/KR100209834B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends

Abstract

본 발명은 서버(호스트 컴퓨터)로부터 통신 네트워크에 접속된 다수의 고객 시스템으로 멀티미디어 및 비디오 데이터를 전송하기 위한 방법 및 장치에 관한 것이다. 특히, 본 발명에 따르면, 사전처리된 비디오 및 멀티미디어 데이터 패킷이 네트워크 스위치에 저장된다. 고객시스템이 비디오 및 멀티미디어 데이터를 수신하기를 원할 때에는, 호스트 컴퓨터에 요구를 전송하고, 이어서 요구된 데이터를 저장하고 있는 스위치로 제어 메시지를 전송한다. 이들 스위치는 이어서 요구된 데이터를 고객시스템에게 전송한다. 만일 데이터가 스위치에 저장되지 않았으면, 데이터는 서버로부터 고객시스템으로 직접 전송되어야 한다.

Description

데이터 통신 네트워크, 데이터 통신시스템, 연속미디어 내용 분배 방법 및 시스템, 연속미디어 내용 전송방법
제1도는 UNIX 운영 체제의 파일에서 데이터의 구성을 개략적으로 도시한 도면.
제2a도는 본 발명이 구현되는 환경과, 호스트에 유지되는 오프 로딩된 데이터에 대한 포인터를 갖는 네트워크의 스위치내의 데이터에 대한 오프 로딩을 개략적으로 도시한 도면.
제2b도는 비디오 내용으로부터 도출되는 사전처리된 패킷(preprocessed packets)을 개략적으로 도시한 도면.
제3도는 사전처리된 패킷을 저장하기 위해 수정된 공유 버퍼 스위치(shared buffer switch)를 개략적으로 도시한 도면.
제4도는 사전처리된 패킷을 저장하기 위해 수정된 공유 버퍼 스위치를 개략적으로 도시한 도면.
제5도는 수정된 공유 버퍼 스위치의 비디오 디스패치부(video dispatcher unit)의 상세 사항을 도시한 도면.
제6도는 호스트 프로세서(host processor)로부터 스위치(switch)로 전송되는 제어 메시지(control message)의 포맷을 개략적으로 도시한 도면.
제7도는 클라이언트 시스템(client), 스위치 및 호스트 프로세서간의 메시지 흐름을 도시한 도면으로서, 특히, 클라이언트 시스템으로부터 호스트로의 요구 메시지와, 호스트로부터 스위치로의 제어 메시지가 도시되어 있고, 제어 메시지에 응답하여 스위치로부터 클라이언트 시스템으로 비디오 패킷이 전송되는 것을 도시한 도면.
제8도는 본 발명과 함께 이용되는 바람직한 비디오 메모리(video memory)의 개략적인 도면.
제9도는 본 발명의 수정된 출력 어댑터(output adapter)의 개략적인 도면.
제10도는 공유 버퍼를 갖지 않는 상이한 스위치를 이용한 본 발명의 다른 실시예의 개략적인 도면.
제11도는 스위치에 반도체 저장 장치(semiconductor storage)를 집적하는 다른 방법을 도시한 도면.
제12도는 반도체 저장 장치 대신에 자기 디스크 저장 장치를 이용한 것을 도시한 도면.
제13도는 비디오 스트림내의 프레임 시퀀스를 나타내는 도면.
* 도면의 주요부분에 대한 부호의 설명
6 : 요구 메시지 8 : 제어 메시지
10 : 호스트 20 : 클라이언트 시스템
50 : 네트워크 60 : 네트워크 스위치
100 : 고속 직렬 링크 200 : 입력 어댑터
250 : 출력 어댑터 300 : 입력 버스
350 : 출력 버스 400 : 공유 버퍼
510 : 자유 셀
600 : 중앙 제어기/비디오 메모리 관리자
700 : 비디오 메모리 800 : 비디오 디스패처
900 : 비디오 내용 915 : 페이로드
920 : 비디오 메시지 931 : 트레일러
935 : 헤더 940 : 링크 필드
950 : 흐름 제어 필드
본 발명은 멀티미디어 데이터(multimedia data) 및 비디오 데이터(video data)를 통신 네트워크를 통해 서버(server)로부터 클라이언트 시스템(client) 에게 전송하는 방법 및 장치에 관한 것이다.
단말 사용자(end user)의 가정으로 정보 및 오락 서비스를 제공하는 시스템은 세 개의 개별적인 구성 요소 즉, 서버 시스템, 단말 사용자 시스템 및 서버에 복수의 단말 사용자(클라이언트 시스템)를 동시에 접속하기 위한 네트워크(network)를 포함한다. 가정에 정보를 전달하는데 가장 널리 이용되는 두 시스템은 공중 전화 네트워크(public telephone network)와 방송/케이블(broadcast/cable) 텔레비전 시스템이다. 오늘날 전화 네트워크는, 예를 들어 다양한 사무 절차를 지시하기 위한 음성 세그먼트(audio segments) 뿐만 아니라, 은행의 잔고와 같은 전자적으로 저장된 텍스트 정보에 액세스할 수 있도록 해준다.
기술상의 진보가 대화형 멀티미디어 서비스(interactive multimedia services)를 기능하게 할 것이라고 널리 인정되고 있다. 예상되는 서비스로는 영화, 뉴스, 스포츠, TV 프로그램 등의 주문형 비디오(video on demand), 홈 쇼핑, 대화형 게임, 대리 여행(surrogate travel) 및 광범위한 교육 및 정보를 들 수 있다. 그러나, 종래의 정보/오락 전송 시스템의 세 가지 구성 요소인 서버, 네트워크 및 단말 사용자 터미널(PC 또는 셋 탑 박스(set-top-box))은 대화형 멀티미디어 서비스를 전송하기 위해 개선될 필요가 있다. PC 및 셋 탑 박스는 전체 모션 비디오(full motion video) 및 이에 수반하는 오디오를 수신하여 압축해제(decompress)할 수 있는 능력이 필요하다. 네트워크는, 각 사용자가 서버에 연결된 자신의 전용 비디오 채널(dedicated video channel)을 소유할 수 있도록 충분한 대역폭을 가져야 하고, 대부분의 서비스에 있어서, 서버는 적은 비용으로 복수의 비디오 스트림(video streams)을 동시에 전송할 수 있어야 한다.
오늘날, 전화 네트워크의 주된 문제점(handicap)은, 각 단말 사용자가 이용할 수 있는 대역폭이 제한되어 있다는 것으로, 현존 대역폭으로는 단지 하나의 오디오 채널을 제공할 수 있을 뿐이다. 이러한 대역폭으로는 모션 비디오 정보를 전송 할 수 없으며, 또한 고해상도 영상(high resolution images)을 전송하기에도 충분치 않다. 케이블 및 방송 텔레비전은 각 사용자에게 훨씬 넓은 대역폭을 제공하지만, 네트워크의 제한된 총 대역폭(케이블의 대역폭 또는 무선 방송파(airwaves)에 할당되는 스펙트럼 대역폭)으로 인해 사용자는 자신이 관심을 가지는 정보를 대화형으로 선택할 수 없다. 그 대신에 사용자의 선택은, 소정의 주어진 시간에 방송되는 약 50 개의 프로그램들 중 하나로 제한된다. 따라서, 현존 전화와, 방송 및 케이블 텔레비전 네트워크는 주문형 비디오 및 대화형 게임과 같은 대화형 멀티미디어 서비스를 전송하기에는 부적합하다.
그러나, 전화 서비스 및 케이블 텔레비전 서비스의 제공자는 전술한 제한을 제거하기 위한 기술의 진보에 투자하고 있다. VLSI 의 집적도가 증가하여 모션 비디오 압축/압축해제 하드웨어의 비용이 절감되었고, ADSL (비대칭 디지털 가입자 루프; Asy m metric Digital Subscriber Loop)과 같은 기술이 가능하게 되었다. 이들 두 기술로 인하여 사용자의 가정으로부터 모션 비디오를 전송 및 수신하고, 그것을 지역 전화국에서 스위칭함으로써, 각 사용자에게 자신의 전용 비디오 채널을 제공하는 것이 가능하게 되었다. 마찬가지로, 광섬유 전송 기술(fiber optic transmission technology)의 진보와 비용 절감으로 인해, 케이블 TV 네트워크의 중계 회선 및 송전선 시스템(trunk and feeder systems)의 업 그레이드가 가능해짐에 따라, 네트워크의 대역폭은 각각의 활성 가입자에게 압축된 디지털 비디오 (compressed digital video)를 수신하기 위한 전파 중계소(head-end)로의 전용 채널을 제공하기에 충분한 정도로 증가되었다. 또한, 직접 방송 위성(direct broadcast satellites) 및 다른 최신의 무선 통신 기술에 의해 복수의 단말 사용자와 서버간에 전용 비디오 채널이 제공 된다. 개인용 컴퓨터 및 셋 탑 박스는 또한, 저가의 비디오 압축/압축해제 하드웨어 및 새롭고 강력하면서 저렴한 마이크로프로세서를 이용하여, 네트워크로 연결된 멀티미디어 애플리케이션(networked multimedia applications)을 기능하게 하고 있다.
단말 사용자(클라이언트 시스템) 시스템과 네트워크 하부 구조(infrastructure)가 대화형 멀티미디어 서비스의 요구에 부합되도록 급속히 발전하는 반면, 현존 서버는 각 서버에 의해 지원될 수 있는 제한된 수의 스트림으로 인해 이들 서비스를 전송하기에는 여전히 고가이며 비실용적이다. 대화형 멀티미디어 서비스를 위해 현재 선택되고 있는 서버는 시판되고 있는 메인프레임(mainframes)이거나, 워크 스테이션(work station) 기술에 기초한 병렬 컴퓨팅 시스템(parallel computing system)이다. 상기 두 경우에 있어서의 하드웨어와 소프트웨어는 계산 집약형 애플리케이션(computation intensive application) 및 복수의 동시적인 사용자(시공유(time sharing))를 지원하도록 최적화되며, 네트워크 인터페이스 및 I/O 장치와 데이터를 주고 받는 것에는 거의 주안점이 주어지지 않는다. 예를 들면, RS/6000의 메모리로부터 캐쉬(cache)로의 대역폭은 400 메가바이트/초(MBytes/sec)인 반면, I/O 장치 또는 네트워크 장치로부터 시스템으로의 대역폭은 단지 80 메가바이트/초이다. 부동 소수점 연산이 지원되더라도 비디오/멀티미디어 데이터의 전송에는 거의 도움이 안되며, 단지 시스템의 비용만 증가시킨다. 네트워크 프로토콜(network protocol)은 70년대 초의 신뢰할 수 없는 저속 네트워크 링크, 네트워크 하부 구조 및 애플리케이션 환경을 통해 신뢰성 있게 데이터를 전송하기 위해 최적화되며, 보다 강건한 현대의 네트워크를 통해 비디오를 전송할 때의 덜 엄격한 신뢰도 요건을 감안하고 있지 않으므로, 불필요하게 CPU 오버헤드만을 증가시킨다.
전술한 요인들로 인해, 범용 컴퓨팅 시스템 기반 비디오/멀티미디어 서버의 가격/성능은 비디오의 전송을 위해 최적화된 시스템의 가격/성능보다 훨씬 높다. 이러한 제약을 치유하기 위한 공개적으로 알려진 활동이 지금까지는 극히 적었고, 비디오 서버 애플리케이션의 디스크 처리량을 극대화하기 위해 데이터를 디스크 어레이(an array of disk)에 배치하는 것을 최적화하거나[3,4], 비디오 서버 환경에서 디스크의 재사용을 극대화하기 위해 디스크로부터 검색된 데이터를 버퍼링하는 방법을 최적화하거나[5,6], 또는 파일 시스템을 비디오데이터에 대해 최적화[7]하는 것에 한정되어 있었다. 이러한 개선은 현재 비디오 서버 시스템의 가격 성능을 두 배 내지 네 배로 향상시킬 수 있으나, 대화형 멀티미디어 서비스가 경제적으로 가능해지기 위해서는 100 내지 1000 범위의 개선이 필요하다.
호아티(Hoarty) 등에 의한 두 특허(미국 특허 제5,093,718호 및 제5,220,420호)는, 각각 소형의 이웃(small neighborhood)을 서비스하는 복수 서버 (multiple server)의 사용을 제안하였고, 전체 멀티미디어 프로그램이 이들 서버에 오프로딩(off-loading) 된다. 이에 반해, 본 발명은, 네트워크내의 스위치 또는 라우터(routers)로 멀티미디어 애플리케이션의 비디오 내용 전송 부분만을 오프 로드하는 대형 서버를 사용한다. 애플리케이션 제어 즉, 어떤 비디오 시퀀스를 언제 재생할 것인가를 판정하는 것은, 중앙 서버(central servers)가 수행한다. 요금 계산과 같은 지원 기능도 또한 중앙 서버가 수행한다.
해밀턴(Hamilton) 및 넬슨(Nelson)의 미국 특허 제5,287,507호는, 어떤 정보에 대한 참조(reference)를 다른 클라이언트 시스템에게 전송하고자 할 때, 클라이언트 시스템이 서버에 저장된 사본(copy)에 대한 포인터 대신에 그의 국부 캐쉬(local cache)내에 저장된 그 정보의 사본에 대한 포인터를 전달하여, 수신 클라이언트 시스템(receiving clients)이 서버에 저장된 정보에 대한 포인터를 재구성하도록 허용하는 경우 발생되는 문제점을 해결한다. 본 발명의 전송 방안은 국부 캐쉬의 존재를 가정하지 않으므로, 이 특허는 본 발명과는 관련이 없다.
그리펜(griffen) 등의 미국 특허 제 5,005,122호는, 복수의 클라이언트 시스템 컴퓨터를 포함하는 네트워크에서, 백업(back up), 소프트웨어 분배 등과 같은 서비스를 제공하기 위해, 서버 컴퓨터의 이용을 제안한다. 이 특허는 연속적인 미디어 정보의 전송을 위한 서버의 설계를 언급하고 있지 않다.
청(chung)의 미국 특허 제5,218,697호는 상이한 운영 체제(operating syste ms), 상이한 파일 서버(file servers) 및 상이한 파일 시스템(file systems)을 실행하는 이종 파일 서버(heterogeneous file servers)의 네트워크에 중앙 파일 서버를 제공하는 방법을 제안한다. 청은, 국부 파일 서버가, 파일 서버 요구를 중앙 서버로 전송하면, 중앙 서버는 이 파일 서버 요구를 적절한 파일 시스템 커맨드로 번역해야 하는 통상적인 방법을 따르지 않고, 중앙 파일 서버에 파일 시스템 커맨드를 전송함으로써, 중앙 파일 서버의 파일 시스템을 직접 액세스할 수 있음을 개시한다.
무어(Moore)의 미국 특허 제5,287,461호는 서버들을 이격시켜 배치한다. 제안된 방법은 복수 서버의 콘솔(console) 라인을 다중화(multiplex)하는 것으로서, 다중화된 정보를 원하는 지역(location)으로 전송하기 위해 모뎀을 이용한다.
창(chang) 등의 미국 특허 제4,897,781호는, 클라이언트 시스템이 개방된 파일에 대한 국부 캐쉬를 소유하는 네트워크 파일시스템을 개시한다. 이 특허는 소정의 파일로부터 이미 캐쉬된(cached) 정보를 이용하여, 상이한 개방 커매드로 생성된 동일 파일을 액세스하는 방법을 개시한다.
본 발명의 목적은 감소된 비용으로 통신 네트워크를 통하여 대화형 멀티미디어 서비스를 제공하는 것이다.
본 발명의 보다 구체적인 목적은 요구 클라이언트 시스템(requesting client)에 비디오 내용(video content)을 보다 효율적으로 전송할 수 있는 네트워크의 스위치로 비디오 내용을 오프 로딩함으로써, 서버로부터 요구 클라이언트 시스템으로 비디오 내용을 전송하는 것과 관련된 오버헤드(overhead)를 감소시키는 것이다.
본 발명은 네트워크를 개선하여, 종래의 방식에 비해 100 내지 1000 배로 비디오 스트림(video stream)의 전송 비용을 감소시키는 방법을 제안한다. 제안된 개선은, 비디오/멀티미디어 내용이 네트워크 패킷(network packets)의 포맷(formats)으로 네트워크의 스위치 또는 라우터에 저장되도록 허용한다. 멀티미디어 애플리케이션 서버(multimedia application server)는 요구되는 비디오 또는 멀티미디어 정보에 대한 네트워크 패킷을 저장하고 있는 스위치 또는 라우터로 제어메시지를 전송함으로써, 하나 이상의 이들 패킷을 지정된 클라이언트 시스템에게 전송한다. 이러한 인스트럭션을 수신한 스위치 또는 라우터는 요구된 패킷을 검색하여, 패킷의 헤더(header) 및 트레일러(trailer) 정보, 특히 네트워크가 일련의 라우터 및 스위치를 통해 이들 패킷을 지정된 클라이언트 시스템으로 전달할 수 있도록 하는 경로 지정(routing) 정보를 수정한 후, 이들 패킷을 네트워크상에 위치시킨다. 수 만개 정도의 많은 스트림을 지원하기 위해, 반도체 저장 장치를 이용하여 사전패킷화된(prepacketized) 비디오를 저장하며, 패킷을 검색하여 헤더 정보를 수정하기 위해 전용 하드웨어가 이용된다. (제4도의 비디오 디스패처와, 스트림 제어 및 출력 어댑터의 상세한 설명을 참조하라.) 반도체 저장 장치는 인기가 낮은 비디오 내용을 저장하는 디스크 저장 장치를 포함하여 확장될 수 있다. 수백 내지 수 천 스트림의, 적은 수의 스트림을 지원하기 위해서는, 단지 디스크만을 이용할 수 있고, 패킷을 검색하여 헤더 정보를 수정하기 위하여 전용 하드웨어 대신에 마이크로제어기/마이크로프로세서(microcontroller/microprocessor)를 이용할 수 있다.
이하 설명되는 실시예에서는 스위치를 이용하여 비디오/멀티미디어 또는 연속 미디어 내용(continuous media content)을 오프 로딩하는 것에 대해 기술될 것이다. 그러나, 이하의 설명은 스위치를 대신하여 라우터/브리지(bridges) 등을 이용하는 것으로 용이하게 적용될 수 있다. 더욱이, 이하의 설명은 단지 고정된 크기의 셀(fixed size cells)을 전송하는 패킷-스위치 네트워크(packet-switched network)의 이용에 대하여 기술하지만, 이하의 실시예는 가변 크기 패킷을 전송하는 네트워크 또는 회로 스위치 네트워크(circuit switched network)에서의 이용에도 용이하게 적용될 수 있다. 본 발명의 실시예에서는 ATM(Asynchronous Transfer Mode) 광대역 네트워크 및 AAL5(ATM Adaptation Layer)[1]를 이용한다. 마지막으로, 비록 본 실시예는 단지 압축된 형태로 저장된 비디오 정보의 전송을 기술할 것이지만, 당업자라면, 이 실시예를 실질적으로 변경하지 않고도, 비압축 비디오 정보와, 오디오, 애니메이션 등과 같은 연속적인 미디어 정보를 처리할 수 있음을 이해할 것이다. 상이한 오디오 정보 또는 비디오 정보는 상이한 비율로 압축될 수 있다. 예를 들어, 음악은 음성 대화보다 높은 비트율(보다 낮은 압축 할당)로 압축될 수 있다. 연속적인 미디어 스트림은 MPEG-II(Motion Picture Expert Group)전송 스트림(transport stream)으로서 함께 다중화되는 상이한 유형의 몇몇 스트림으로 구성될 수 있다. 본 발명의 실시예에서는 비디오 내용을 하나의 비디오 채널 및 오디오 채널을 통해 전송하는 MPEG-II 전송 스트림을 이용할 것이다. 본 발명에서 이러한 비디오는 매 초당 4 메가바이트의 디지털 데이터로 압축된다.
본 발명의 실시예는 두 가지의 개별적인 구성 요소를 포함하는데, 첫 번째 구성 요소는 호스트 또는 애플리케이션 서버로부터 네트워크 내의 스위치로 비디오 내용을 오프 로딩하는 것이고, 두 번째 구성 요소는 비디오 내용을 저장하고 호스트에 의해 지시될 때 지정된 클라이언트 시스템으로 비디오 내용을 디스패칭할 수 있는 스위칭 하드웨어(switching hardware) 이다. 이하, 비디오 내용이 네트워크에 저장되는 포맷과, 비디오 내용과 함께 저장되어 스위치에서 비디오 내용을 검색하여 이를 클라이언트 시스템에게 디스패치하는 데 필요한 하드웨어를 최소화하는 추가 데이터에 대해 기술할 것이다. 또한, 이하, 반도체 저장 장치에 비디오를 저장하고, 이 저장 장치를 할당(allocating) 및 회수(reclaiming)하는 동작을 구현하며, 호스트에 의해 요구되었을 때 비디오 내용의 검색 및 디스패칭을 지원하기 위해 공유 버퍼 스위치(shared buffer switch)에서 필요한 하드웨어의 수정/추가에 대해 기술할 것이다. 마지막 절에서는 공유 버퍼 스위치가 아닌 네트워크 스위치가 사용되고, 반도체 저장 장치 대신에 디스크 저장 장치가 사용되는 본 발명의 다른 실시예를 간략하게 설명한다.
[네트워크내에서 호스트로부터 스위치로의 비디오 내용 오프 로딩]
제1도 및 제2도를 참조하면, 본 발명의 제1 단계는 ATM 광대역 네트워크(broadband netword)(50)의 스위치(60)(제2a도)에 비디오 내용(900)(제2b도)을 오프 로딩하는 것을 포함한다. 한 시간짜리 프로그램의 MPEG-II 전송 스트림은 대략 1.8 기가바이트의 디지털 데이터(900)이다. 이 데이터(900)는 유닉스(Unix)와 같은 운영 체제를 실행하는 범용 컴퓨터에 저장될 때, 4 킬로바이트의 페이지들(pages)(901)로 분할된 후(제1도), 각 데이터 블록이 4 킬로바이트를 포함할 때 대략 450,000개의 데이터 블록(910)으로, 아마도 자기 디스크상에 저장될 것이다. 비디오 내용을 나타내는 이들 데이터 블록외에도, 아이노드(Inodes)(911) 및 간접블록(912)과 같은 디스크상에 저장된, 총체적으로 메타데이터(metadata)로 알려진 다른 정보가 존재한다. 참고 문헌[2] 참조. 또한, 제1도에 도시된 바와 같이, 이 메타데이터는 비디오 내용과는 분리되어, 즉, 비디오 내용을 저장하는 디스크 블록과는 상이한 디스크 블록에 저장된다. 운영 체제는 이 메타데이터를 이용하여 특정 비디오 파일에 속하는 페이지를 찾아 내고, 비디오 내용 파일의 데이터의 특정 영역을 저장하는 페이지를 찾는다.
제7도에는 네트워크의 스위치(60)를 통하여 클라이언트 시스템(20)으로부터 호스트(10)로 전송되고 있는 요구 메시지(request messages)(6)가 도시되어 있다. 이 요구 메시지는 바람직하게 수 개의 파라미터(parameter)를 지정하여 호스트 상에서 비디오 전송 프로시쥬어(video delivery procedure)를 호출하는 클라이언트 시스템에 의한 원격 프로시쥬어 호출(remote procedure call)일 것이다. 요구 메시지의 제1 파라미터는 클라이언트 시스템에 의해 요구된 비디오 파일의 명칭(name) 또는 인덱스(index) 일 것이며, 이 비디오 파일은 클라이언트 시스템과 서버상에서 분산 계산 환경(distributed computation environment)을 실행하는 대화형 멀티미디어 애플리케이션의 실행 전에 서버에 의해 클라이언트 시스템에 제공되는 이용가능한 비디오 파일의 리스트로부터 선택된다. 요구 메시지의 제2 파라미터는 이 비디오 파일의 재생(playback)이 개시되어야 할 위치를 이 비디오 파일의 시작 지점에 관한 오프셋(offset)으로서 지정한다. 요구 메시지의 제3 파라미터는 이 비디오 파일의 재생이 종료되어야 할 위치를 이 비디오 파일의 시작 지점에 관한 또는 개시 오프셋에 관한 오프셋으로서 지정한다. 또 다른 파라미터는 제3 파라미터내의 오프셋이 비디오 파일의 시작 시점에 관한 것인지 또는 재생 개시위치에 관한 것인지를 지정한다. 제2 및 제3 파라미터내의 오프셋은 시간으로 또는 데이터 바이트의 수로 표시될 수 있다. 원격 프로시쥬어 호출은 본 기술 분야에 잘 알려져 있으므로, 요구 메시지는 이하에 더 이상 기술되지 않을 것이다(본 명세서에 참조로서 인용되는 참고 문헌[8]을 참조). 호스트는 요구 메시지를 처리하고, 이하 기술된 바와 같이, 요구된 비디오 내용이 네트워크 스위치들 중 하나에 저장되어있는지를 판정한다. 저장되어 있으면, 호스트는 요구된 데이터를 포함하는 스위치로 제어 메시지(8)를 전송한다(제2도 및 제6도를 참조). 스위치는 제어 메시지에 응답하여 제어 메시지내의 지정된 비디오 패킷을 검색한 후, 이들 패킷을 클라이언트 시스템에 전송한다.
제2a도에는 호스트(10)와, 클라이언트 시스템(20)과, 복수의 스위치(60)를 구비하는 네트워크(50)를 포함하는 본 발명의 시스템이 개략적으로 도시되어 있다. 통상적으로 범용 컴퓨터인 호스트 또는 애플리케이션 서버로부터 비디오내용(900)(제1도 참조)을 오프 로드하기 위해, 본 발명에서는 비디오 내용(900)을 고정된 크기의 페이로드(payloads)(915)로 분할하여 비디오 메시지(920)를 생성한다(제2b도 참조). 페이로드의 크기는 전형적으로 1킬로바이트 내지 16 킬로바이트이고, 본 발명의 실시예에서는 1528 바이트로 선택한다. 제2b도에 도시된 바와 같이, 이러한 크기의 페이로드는 32개의 ATM 셀(900)내에 들어간다. 호스트 또는 애플리케이션 서버내에서 각 페이로드는 네트워크 스위치 어드레스(network switch address)(926)와 스위치내의 메시지의 어드레스(927)를 포함하는 포인터 (pointer)(925)로 대체된다(제2도를 참조). 이러한 각각의 포인터의 크기는 8바이트 내지 16바이트 사이로 될 것이다. 호스트내에서 포인터(925)에 의해 표시되는 비디오 메시지(920) 자체는 제2a도에 도시된 바와 같이, 포인터의 스위치 어드레스 구성 요소(switch address component)(926)에 의해 지정된 스위치(60)내에서, 포인터내에 지정되는 메시지 어드레스에 저장된다.
비디오 내용(900)을 포함하는 호스트내의 파일은 네트워크의 스위치내에 저장된 비디오 메시지에 대한 포인터(925)를 포함하는 파일과 상이하고, 호스트는 이들 파일을 상이하게 처리해야 하므로, 호스트는 비디오 내용(900)을 포함하는 모든 파일에 하나의 파일 유형을 할당하고, 네트워크내에 저장된 비디오 메시지에 대한 포인터를 포함하는 모든 파일에 다른 파일 유형을 할당하기 위한 명칭 규약(naming convention)을 이용한다. 이와 달리, 호스트는 모든 비디오 내용 파일을 리스트(list)하고 해당 파일이 비디오 내용인지 또는 네트워크의 스위치에 저장된 비디오 메시지에 대한 포인터의 리스트인지를 나타내는 엔트리(entry)를 갖는 테이블을 유지할 수 있다.
네트워크내의 스위치에 비디오 내용을 저장하기 전에, 8 바이트의 ATM AAL5 수렴 하부층 트레일러(convergence sublayer trailer)(931)가 각 페이로드(915)에 부가 되고, 결과적인 바이트가 제2b도에 도시된 바와 같이 일련의 ATM 셀(930)을 포함하는 비디오 메시지(920)로 재포맷(reformat)된다(ATM 네트워크에서, 네트워크 패킷은 셀이라고 지칭됨). 마찬가지로, 비 ATM 패킷 스위치 네트워크(non ATM packet switched network)에서, 필요하다면 메시지에 전송층(transport layer) 헤더/트레일러가 부가된 후에, 세그먼테이션 (segmentation)이 수행 될 것이고, 세그먼트가 스위치에 저장되기 전에 네트워크층 (network layer) 헤더 및/또는 트레일러가 이들 세그먼트에 부가될 것이다.
패킷이 스위치내에 저장되고 있을 때에 사전계산될 수 있는 네트워크/전송/적응층(network/transport/adaptation layer) 헤더 또는 트레일러내의 필드는 사전 계산되어(precomputed) ATM 셀내의 적절한 위치에 저장된다. 본 발명의 경우에 있어서, 각 메시지의 최종 패킷은 8 바이트 수렴 하부층(CSL) 트레일러(931)를 포함하고, 그 수렴 하부층(CSL) 트레일러(931)에서는 메시지가 스위치에 저장되기 전에 메시지 길이 및 첵섬(checksum) 필드가 사전계산되며, 사용자간 표시(user-to-user indication)(UU) 및 공통부 표시(common part indicati on; CPI) 필드가 0으로 설정된다. 전체 ATA AAL5/CSL (수렴 하부층) 트레일러는 이들 네 개의 필드에 의해 표현된다. 각 ATM 셀내의 5 바이트의 헤더(935)에는, 단지 최종 반 바이트(half byte)만이 사전계산가능하다. 이들 네 비트에는 셀 상실 우선 순위(cell loss priority)와 페이로드 유형(payload type)이 포함되고, 페이로드 유형에는 또한 AAL5 SAR(Segmentation and Reassembly)층에 대한 1 비트의 데이터그램(datagram)종료 필드가 포함된다. 상술한 바와 같이 부분적으로 사전계산된 헤더/트레일러를 포함하는 ATM 셀(930)은 사전처리된 비디오 패킷을 포함한다.
비디오 메시지(920)는 네트워크내의 흐름 제어의 기본 단위이고, 따라서 비디오 메모리를 액세스하고 클라이언트 시스템에게 비디오 데이터를 전송하는 기본 스케줄링(scheduling) 단위이다. 비디오 메모리부터 검색된 ATM 셀이 비디오 메시지의 최종 셀이 아니면, 스위치는 자동적으로 그 비디오 메시지내의 다음 셀을 검색 한다. 스위치는 전송 속도를 제어하기 위해 비디오 메시지의 두 ATM 셀의 전송간에 지연을 삽입하지는 않기 때문에, 비디오 메시지 ATM 셀은 버스트(burst)로 클라이언트 시스템에 의해 수신 된다. 비디오 메시지의 크기는, 네트워크의 효율적인 동작을 위해, 대화형 멀티미디어 애플리케이션에 빠른 응답 시간을 제공하고, 클라이언트 시스템에서의 버퍼 요구(buffer requirements)를 최소화하도록 제한 되어야 한다. 그러나, 짧은 비디오 메시지는 호스트와 스위치간에 빈번한 상호 작용이 필요하므로, 보다 강력한 (그리고, 그에 따라 보다 고가인) 호스트가 필요하고, 증가된 수의 제어 메시지를 처리하기 위해 스위치 내에 보다 많은 하드웨어가 필요 하다.
이러한 문제점은 스위치가 호스트로부터 수신된 단일 제어 메시지에 응답하여 복수의 비디오 메시지를 클라이언트 시스템에게 전송하도록 함으로써 해결된다. 이러한 능력을 지원하기 위해, 각 비디오 메시지에 대해 추가 정보가 생성되어 네트워크 스위치내의 비디오 메시지와 함께 저장된다. 이 정보는 제2b도에 도시된 바와 같이 링크 필드(link field)(940)와, 흐름 제어 필드(flow control field)(950)로 구성된다. 비디오 스트림(900)의 각 비디오 메시지(920)내의 링크 필드는 그 비디오 스트림내의 다음 비디오 메시지를 지시한다. 따라서, 호스트 또는 애플리케이션 서버는 개시 메시지의 어드레스와, 전송될 후속 메시지의 수를 지정하는 제어 메시지를 스위치에 전송할 수 있고, 스위치는 이 링크 필드(940)를 이용하여 후속 메시지를 검색할 수 있다. 흐름 제어 필드는 고정된 개시 지점으로부터 참조된, 다음 비디오 메시지의 재생 시간을 포함한다. 따라서 스위치는 동일한 스트림의 두 개의 비디오 메시지의 전송간에 정확한 지연을 삽입하여, 클라이언트 시스템에게 비디오 데이터를 전송함에 있어 적절한 속도를 유지할 수 있다.
[수정된 스위치 하드웨어 및 그 동작]
이하에서는 먼저 본 실시예의 기초가 되는 공유 버퍼 스위치의 설계와 그 동작에 대해 간략하게 설명한다. 그 다음, 호스트에 의해 지시받았을 때 비디오를 저장하고, 지정된 클라이언트 시스템에 지정된 비디오 패킷을 디스패칭할 능력을 갖는 수정된 고유 버퍼 스위치에 대해 기술한다. 먼저, 수정되지 않은 스위치를 기술할 경우, 본 발명의 바람직한 실시예와는 직접 관련되지 않지만, 이러한 관계는 이하의 수정된 스위치의 상세한 설명을 참조하면 명백해질 것이다.
[공유 버퍼 스위치]
제3도에는 공유 버퍼 스위치의 상위 아키텍처가 개략적으로 도시되어있다. 그 중앙에는 메모리로 기록될 데이터를 입력하는 입력 버스(input bus)(300)와, 메모리로부터 판독되고 있는 데이터를 출력하는 출력버스(output bus)(350)와 대형 공유 메모리(shared memory)(400)가 존재한다. 본 발명의 실시예에서, 입력버스(300)와 출력 버스(350)는 53 바이트의 폭으로서 ATM 셀의 크기와 동일하다. 각각의 고속 직렬 링크(high speed serial links)(100)에 도착하는 패킷(ATM 셀)을 입력 어댑터(input adapter)(200)내에서 처리하여, ATM 셀 헤더를 검사한 후, 이 패킷을 어느 스위치 출력(switch output)(150)으로 경로 지정해야 하는지를 결정하고, ATM 네트워킹 방법에 따라 셀의 어드레스(가상 경로 식별자(Virtual Path Identifier; VPI) 및 가상 회선 식별자(Virtual Circuit Identifier; VCI)) 필드를 교체(swap)한다(참고 문헌[1] 참조). 이러한 처리 후, 입력 어댑터(200)는 이 패킷을 직렬해제(deserialize)하여 단일의 35 바이트 폭 워드로 변환한 후, 이 패킷을 입력 버스(300)상에 배치하고, 동시에 이 패킷이 전송되어야 할 스위치 출력 (150)의 어드레스를 아웃-어드레스 버스(out-address bus)(310)상에 배치한다. 따라서, 이 패킷은 공유 메모리(shared memory)(400)내에서 제어기(controller)(500)에 의해 독립적으로 결정된 위치에 저장된다. 버스 대역폭은 모든 인입 라인(incomming lines)의 총 대역폭과 일치한다. 공유 메모리(400)는 53 바이트 워드(410)의 어레이(an array of 53 byte words)로서 구성된다. 즉, 판독 및 기록 동작을 위한 데이터 전송의 기본 단위는 ATM 셀의 크기인 53 바이트이다. 차후의 논의를 보다 명확히 이해할 수 있도록 본 명세서에서는 이 53 바이트 워드를 셀이라 지칭한다. 각각의 출력 링크(150)는 이와 관련된 출력 어댑터(250)를 갖는다. 모든 출력 링크의 어댑터(250)는 입력 어댑터(200)에 의해 공유되는 버스(300)와 유사한 시분할 다중화 버스(time multiplexed bus)(350)에 의해 공유 메모리에 접속 된다.
공유 메모리(400)내의 자유 셀(free cells)의 리스트가 제어부(control secti o n)(500)에 의해 유지된다. 이 리스트는 FIFO 큐(queue)(520)내에 유지된다. 각각의 출력 링크(150)는 제어부(500)내에 자신과 관련된 FIFO 큐(520)를 포함한다. 이들 큐는 논리적으로 구분되지만, 단일의 물리적 메모리를 이용하여 구현될 수 있다. 큐(520)는 대응하는 출력 어댑터가 공유 메모리로부터 검색하여, 네트워크로 전송해야 할 ATM 셀의 어드레스를 저장한다. 인입 패킷을 공유 메모리에 저장하기 위해, 자유 셀(510) 의 리스트로부터 하나의 자유 셀의 어드레스를 획득하여 기록 어드레스 버스(write address bus)(530)상에 배치한다. 동시에 이 어드레스는 자유 셀(510)의 리스트로부터 디큐(dequeue)되고, 이 패킷이 전송되는 스위치 출력(150)의 어드레스를 운반하는 아웃-어드레스 버스(310)에 의해 선택된 어드레스 큐(520)로 인큐(enqueue)된다. 출력 어댑터(250)는 자신의 출력 링크(150)로 전송될 공유 메모리에 저장된 패킷의 어드레스를, 중앙 제어기(500)내의 자신과 대응하는 어드레스 큐(520)로부터 디큐하고, 공유 메모리로부터 이 패킷을 판독한 후, 이 판독된 패킷을 직렬화(serialize)하여, 링크(150)를 통해 전송한다. 어드레스 큐(520)로부터 디큐된 패킷의 어드레스는 판독 어드레스 버스(read address bus)(540)상에 배치되고, 동시에 자유 셀 리스트(510)로 재활용(recycle)된다.
입력 버스(300)의 대역폭은 모든 인입 링크들(100)의 조합된 대역폭과 동일하다. 따라서, 입력 버스(300)에 대한 중재(arbitration)가 필요치 않다. 그 대신에, N 개의 입력 어댑터 각각이 매 N 번째 슬롯을 액세스하는 슬롯 방식(slotted manner)으로 동작된다. 본 발명의 현 실시예에서, 슬롯은 클럭 사이클이다. 출력버스(350)도 유사한 방식으로 동작하고, 입력 및 출력 어댑터는 그 입력 및 출력 어댑터가 입력 또는 출력 버스에 액세스하는 클럭 사이클에서만 중앙 제어기와 상호 작용한다. 또한, 각각의 입력 어댑터(200)는 마이크로프로세서(210)를 포함하고, 각각의 출력 어댑터(250)는 마이크로프로세서(260)를 포함한다. 이들 마이크로프로세서는 각종 링크 모니터링 및 서비스 기능을 수행하는데 이용되고, 입력 어댑터내의 마이크로프로세서는 또한 경로 지정 테이블(routing tables)을 관리하는데 이용된다. 이들 마이크로프로세서는 또한 후술하는 바와 같이 스위치로부터 전송되고 있는 비디오 스트림을 서비스하는데 유용하게 이용될 것이다. 제어 포인트(control point)(600)는 워크 스테이션(재가 station)급 또는 PC 급 범용 컴퓨터로서, 전체 네트워크의 토폴로지(topology), 링크 상태 및 링크 이용도의 데이터 베이스를 유지하는 등의 네트워크 관리 기능을 수행하고, 설정되고 있는 새로운 회선(circuits)에 레이블(labels)을 할당하며, 마이크로프로세서(210 및 260)를 초기화하고 모니터링하는데 이용된다. 이것은 또한 후술하는 바와 같이, 비디오 내용을 저장하는데 이용되는 메모리를 할당 및 회수하는데 유용하게 이용될 것이다.
마지막으로, 본 실시예는 설명을 보다 용이하게 하기 위해, 공유 버퍼 스위치가 분리된 입력 어댑터 및 출력 어댑터를 구비하고, 각 어댑터 내에 마이크로프로세서를 구비하며, 분리된 입력 버스와 출력 버스를 구비하는 것으로 기술하였다. 그러나 단순한 구현에 있어, 이들 두 개의 어댑터는 하나의 마이크로프로세서가 이들 두 개의 어댑터를 서비스하도록 하여 단일의 카드로 결합될 수 있고, 입력 및 출력 버스는 대역폭이 두배로 확장된 단일의 버스로 대체될 수 있다.
[호스트로부터의 인스트럭션 수신시 비디오를 저장하고 클라이언트 시스템에 전송하도록 수정된 공유 버퍼 스위치]
제4도는 비디오 메시지(920)를 저장하는 능력과, 호스트(10)로부터 제어메시지(8)를 수신시 지정된 클라이언트 시스템(20)에 지정된 메시지 그룹을 전송하는 능력을 공유 버퍼 스위치에 제공하도록 공유 버퍼 스위치내에서 수정된 하드웨어를 도시한다. 제4도의 공유 버퍼 스위치내에 비디오 메시지의 ATM 셀(930)을 저장하기 위해, 공유 버퍼(400)는 비디오 메모리(700)를 추가하여 확장된다. 공유 버퍼(400) 및 비디오 메모리(700)는 입력 버스, 출력 버스, 어드레스 버스 및 기록 인에이블 제어선(write enable control)을 공유한다. 링크 필드(940) 및 흐름 제어 필드(pace control fields)(950)는 비디오 디스패처(800)에 상주하는 태그 메모리(tag memory)(810)내에 분리되어 저장된다(제4도 및 제5도 참조).
비디오 디스패처(800)는 제5도에 상세하게 도시되어있다. 비디오 디스패처는 호스트(10)로부터 제어 메시지(8)(제6도 및 제7도)를 포함하는 ATM 셀을 직접 수신할 수 있다. 이들 제어 메시지는 입력 어댑터(200)가 신호(717)를 활성화할 때, 입력 버스(300)로부터 인터페이스 로직(interface logic)(870)에 의해 수신된다. 제6도에 도시된 바와 같이, 각각의 제어 메시지(8)는 비디오 메시지 그룹내의 제1 ATM 셀의 어드레스와, 그룹내의 제1 비디오 메시지가 전송되어야 하는 시간과, 그룹내의 비디오메시지의 수와, 출력 어댑터 어드레스와, 스트림 번호를 지정하고, 비디오 디스패처(800)에 지시하여 중앙 제어기(500')에 한번에 하나의 ATM 셀에 대한 요구를 송출함으로써 중앙 제어기(500')로부터 지정된 출력 어댑터(250')로 그룹내의 모든 ATM 셀의 전송을 요구하도록 한다. ATM 셀을 판독하기 위한 요구는 제어 메시지내에 지정된 시간에 스케줄러(scheduler)(815)에 의해 멀티플렉서(820)를 통하여 디스패치 큐(825)내에 인큐 된다. 비디오 디스패치(800)는 또한 출력 어댑터(250')내의 마이크로프로세서(260)로부터 버스(270)를 통하여 인터페이스 로직(871)에 전달된 ATM 셀내에 캡슐화(encapsulation)되지 않은 유사한 인스트럭션을 수신한다. 중앙 제어기의 경우와 마찬가지로, 입력 어댑터 및 출력 어댑터는 그 입력 어댑터 및 출력 어댑터가 입력 버스(300) 또는 출력 버스(350)에 액세스하는 사이클에서만 비디오 디스패처와 상호 작용하므로, 버스(270, 271, 717)상에는 중재가 필요치 않으며, 이들 버스의 용도는 차후에 상세히 설명될 것이다. 일단, 메시지 그룹의 제1 메시지의 전송 시간이 비디오 디스패처(800)에 지정되면, 태그 메모리에 저장된 이전 메시지의 흐름 제어 필드로부터 각각의 남아있는 메시지의 전송 시간이 얻어진다.
비디오 디스패처는, 어드레스 큐(520)를 액세스하려는 입력 어댑터(200)간의 경쟁(contention)으로 인해 중앙 제어기(500)내에 즉시 인큐될 수 없는, 비디오 메모리로부터 ATM 셀을 판독하라는 판독 요구를 저장하기 위한 FIFO 디스패치 큐(825)를 포함한다. 디스패치 큐(825)에서 각각의 엔트리는 세 개의 필드를 포함한다. 출력 어댑터 어드레스 필드(output adapter address field)(826)는 어느 출력 어댑터(250')가 이 요구에 의해 비디오 메모리(700)로부터 판독되는 셀을 수신할 것인지를 나타내고, 스트림-아이디 필드(stream-id field)(827)는 셀이 판독되는 필드(826)에 지정된 어댑터상에 비디오 스트림을 지정하며, 비디오 메모리 어드레스 필드(video memory address field)(828)는 판독될 셀의 비디오 메모리내에서의 어드레스를 지정한다. 제4도의 아웃-어드레스 버스(310)의 라인(315)상의 비트가 비활성화 상태(inactive)인 경우, 즉 어느 입력 어댑터도 중앙 제어기와 상호 작용하지 않음을 나타내는 경우, 하나의 엔트리가 디스패치 큐(825)로부터 디큐된다. 출력 어댑터 어드레스 필드(826)의 내용은 버스(745)상에 배치되어 중앙 제어기내의 어드레스 큐(520)를 선택한다. 남아있는 필드, 즉, 스트림-아이디 필드(827) 및 비디오 메모리 어드레스 필드(828)는 버스(725)상에 배치되어, 어드레스 큐(520)로의 입력과 함께 다중화된 후, 버스(745)상의 어드레스에 의해 선택되는 어드레스 큐(520)내에 저장된다.
또한, 비디오 디스패처는 셀 어드레스 모니터(850)의 버스(540)상에서, 비디오 메모리로부터 판독되는 모든 셀의 어드레스와, 이들 셀이 속하는 출력 어댑터 및 스트림 - 아이디를 모니터한다. 라인(581)은 비디오 메모리로부터 셀이 판독되었음을 나타내는데 이용된다. 비디오 메모리로부터 방금 판독된 셀이 메시지의 최종 셀이 아니면, 증분기(incrementor)(855)내의 셀 어드레스를 증분시킴으로써 새로운 요구가 발생되고, 이 새로운 요구는 멀티플렉서(820)를 통해 디스패치 큐(825)로 전송된다. 비디오 메모리로부터 판독된 셀이 메시지의 최종 셀이면, 태그 메모리로부터 그 메시지의 링크 제어 필드와 흐름 제어 필드가 판독되고, 버스(540)로부터 수신되는 스트림-아이디와 함께, 이 메시지를 수신하는 출력 어댑터(250')로 전송된다. 이 정보는 버스(271)상에 전송되어 비디오 메모리로부터 새로운 메시지를 요구하도록 어댑터내의 마이크로프로세서(260)를 트리거(trigger)한다.
비디오 디스패처(800)와 상호 작용하고, 또한 비디오 내용을 로드하도록 입력 어댑터(200)와 상호 작용하기 위해, 중앙 제어기(500)는 다음과 같이 수정된다(제4도의 (500')). 멀티플렉서(720)가 자유 셀 리스트(510)와 어드레스 큐(520)사이에 제공된다. 이 멀티플렉서의 하나의 입력은 버스(530)로서, 이 버스(530)는 현 사이클에서 소정의 입력 어댑터에 의해 기록되고 있는 공유 버퍼(400)내의 자유셀의 어드레스를 운반하고, 이 어드레스는 아웃-어드레스 버스(310)에 의해 주소지정되는 어드레스 큐(520)내에 큐(queue)되어야 한다. 다른 입력은 비디오 메모리내의 셀의 어드레스 및 스트림 식별 번호를 운반하는 비디오 디스패처(800)로부터의 버스(725)이고, 비디오 메모리 셀의 어드레스와 스트림 식별 번호는 버스(745)에 의해 식별되는 어드레스 큐(520)내에 큐 되어야 한다. 아웃-어드레스 버스(310)의 라인(315)상의 하나의 비트는 아웃-어드레스가 유효함을 나타내고, 버스(530)에 보다 높은 우선 순위를 주어, 그에 따라 멀티플렉서(720)를 제어하는데 이용된다. 비트(315)는 또한, 버스(530)가 선택될 때에는 아웃-어드레스(310)를 이용하고, 어드레스 큐(520)내에 저장될 내용이 버스(725)로부터 선택될 때에는 비디오 디스패처에 의해 버스(745)상에 발생되는 어드레스를 이용하도록 중앙제어기내의 어드레스 멀티플렉서(740)를 제어한다. 본 발명의 실시예에서는, 버스(530)의 내용이 상이한 어드레스 큐(520)에 기록되는 경우라도, 비디오 디스패처는 어드레스 큐(520)로 기록할 수 없다는 것에 유의해야 한다. 이러한 결점은 보다 복잡한 로직을 제공함으로써 제거될 수 있다. 어드레스 큐(520)로부터 디큐된 어드레스는, 이 어드레스가 공유 버퍼(400)의 어드레스인 경우에 한해서만, 자유 버퍼 리스트(510)로 재활용된다. 제어 로직(control logic)(730)은 버스(540)상의 어드레스가 공유 버퍼에 대한 어드레스 범위내에 속하는지를 검사하고, 이 범위내의 어드레스만이 자유 셀 리스트(510)내에 인큐되도록 한다. 비디오 메모리(700)에 대한 어드레스가 공유 버퍼(400)에 대한 어드레스보다 많은 비트를 포함하고, 또한 비디오 스트림 번호에 의해 태그될 것이므로, 어드레스 큐(520) 및 버스(540)가 확장된다.
[호스트로부터 비디오 메모리 로딩]
입력 어댑터(200)로부터 비디오 메모리(700)로 정보를 로딩하기 위해, 로드 어드레스 버스(load address bus)(760)가 제어 비트(761)와 함께 이용된다. 입력 어댑터(200)내의 마이크로프로세서(210)는 호스트로부터 메시지내에 포함되어 있는 일련의 ATM 셀을 로딩하라는 메시지를 수신하며, 이러한 로딩은 역시 메시지내에 지정된 비디오 메모리내의 어드레스로부터 시작한다. 이에 응답하여, ATM 셀이 입력 버스(300)상에 배치되고, 셀이 저장되어야 하는 비디오 메모리내의 어드레스가 로드 어드레스 버스(76)상에 배치되며, 제어 비트(761)가 활성화된다. 제어 비트(761)는 중앙 제어기(500')내의 멀티플렉서(710)를 제어하여, 이 멀티플렉서가 비디오 메모리에 대한 기록 어드레스(532)를 버스(530)상의 자유 셀 리스트가 아닌 로드 어드레스 버스(76)로부터 선택하도록 한다. 제어 비트(761)가 활성화 상태인 경우, 제어 비트(315)는 비활성화 상태가 되어, 비디오 디스패처가 어드레스 큐(520)를 액세스하도록 허용한다.
공유 버퍼 스위치내의 제어 포인트로서 이용되는 범용 컴퓨터(600')는 또한 비디오 저장 장치를 할당 및 회수하는 비디오 저장 장치 관리자로서 기능하다. 호스트 컴퓨터 또는 애플리케이션 서버는 자유 비디오 메모리의 블록을 요구하거나, 또는 비디오 메모리의 블록을 반환하기 위해 비디오 저장 장치 관리자와 상호 작용한다. 일단 비디오 저장 장치 관리자가 호스트에 비디오 메모리의 블록을 할당하고, 호스트에 그 블록의 어드레스 범위를 통지하면, 앞서 설명한 바와 같이, 호스트는 비디오 저장 장치 관리자의 개입없이 자신에게 할당된 비디오 메모리로 직접 기록할 수 있다. 비디오 메모리(700)로 기록하기 위한 호스트로부터의 커맨드(command)는 마이크로프로세서(210)에 직접 전송되거나, 또는 제어 포인트 프로세서(600')를 통하여 마이크로프로세서(210)에 간접적으로 전송될 수 있다.
비디오 저장 장치 관리자는 범용 컴퓨터이므로, 비디오 저장 장치 관리자와 호스트간의 통신은 신뢰성있는 표준 전송 프로토콜(transport protocol)이라면 어느것이라도 사용하여 행해질 수있고, 원하는 보안 및 인증 수단이 이용될 수있다. 또한, 호스트로부터 입력 어댑터(200)내의 마이크로프로세(210)로 전달하는 메시지인 보안 링크(secure links)상에서 전송될 수 있으며, 이 경우 키(key)의 분배는 비디오 저장 장치 관리자가 담당하고, 메시지의 해독(decryption)은 마이크로 프로세서 자체에서 수행되도록 할 수 있다. 호스트로부터 마이크로프로세서(210)로 전송되는 두 가지의 일반적인 메시지 유형은 비디오 메모리를 로딩하는 것과 비디오 디스패처에 커맨드를 전송하는 것이다. 이들 커맨드 메시지가 승인(acknowledgement)을 되전송하라는 정보를 포함한다면, 마이크로프로세서(210)는 호스트에 승인을 되전송하도록 프로그램될 수 있다. 비디오 메모리내의 단편화(fragmentation) 현상은 다중 프로그램 컴퓨터에서 주 메모리를 할당하기 위해 제안된 버시 시스템 방법(buddy ststem method)을 이용함으로써 압축(compaction)없이 처리될 수 있다.
[비디오 메모리로부터 단말 사용자로의 비디오 데이터 전송]
전술한 바와 같이, 비디오 메시지 그룹을 디스패칭하기 위해 호스트로부터 전송된 제어 메시지(8)는 입력 어댑터(200)에 의해 인터셉트(intercept)되고, 이 입력 어댑터는 이 커맨드를 비디오 디스패처(800)로 전송한다. 이 비디오 메시지 그룹내의 각각의 ATM 셀에 대해, 비디오 디스패처(800)는 중앙 제어기에 개별적인 요구를 제공하여 ATM 셀을 판독한 후, 정확한 출력 어댑터에 전송한다. 출력 어댑터는 비디오 메모리로부터 판독된 ATM 셀의 헤더내의 VPI/VCI 필드를 채운 후, 이들 셀을 출력 링크(150)상에 전송한다(이하 참조).
하나의 ATM 셀이 비디오 메모리(700)로부터 판독되어, 출력 어댑터(250')(제9도 참조)로 전송됨에 따라, 비디오 디스패처는 버스(540)로부터 이 셀의 스트림-아이디를 수신한 후, 버스(271)를 통해 이 스트림-아이디를 상기 출력 어댑터로 전송한다. 출력 어댑터에 전송되고 있는 ATM 셀이 비디오 메시지의 최종 셀인 경우, 흐름 제어 필드(950) 및 링크 필드(940)가 또한 스트림-아이디와 함께 전송된다. 이하 기술된 바와 같이, 출력 어댑터는 비디오 메모리로부터 동시에 수신된 ATM 셀의 헤더를 완성시킨다.
출력 어댑터는 비디오 메시지의 성공적인 전송을 나타내기 위해 호스트에 승인을 생성할 수 있다. 대형 서버에서의 효율적인 구현을 위해, 이 승인은, 메시지 그룹내의 ATM 셀의 수가 매우 커서, 승인 빈도수가 마이크로프로세서(260)에 의해 조작되기에 충분하도록 낮지 않다면, 스트림 제어 테이블로부터 복귀 어드레스 (return address 및 기타 관련 정보를 이용하여 하드웨어에 의해 생성되어야 한다.
[비디오 메모리의 바람직한 구현]
본 발명의 바람직한 실시예에서, 공유 버퍼(400)는 SRAM(Static Random Access Memory) 모듈로 구현된다. 그러나 비디오 메모리는 공유 버퍼보다 훨씬 크므로, 비디오 메모리는 비용, 전력 및 공간상의 제약으로 인해 SRAM 기술로 구현될 수 없다(비디오 메모리의 크기는 백 기가바이트 단위인 반면에 공유 버퍼의 크기는 수 메가바이트 정도이다). 따라서, 비디오 메모리(700)는 제8도에 도시된 바와 같이, DRAM(Dynamic Random Access Memory)으로 구현된다. 바람직하게, 4 내지 16개의 DRAM 모듈이 존재하며, 각 모듈은 53바이트 폭을 갖는다. 본 발명의 실시예에서는 4개의 모듈을 이용한다. DRAM 모듈은 SRAM처럼 분리된 데이터 입력 포트(ports)와 데이터출력 포트를 구비하지 않으므로, 3상 드라이버(tristate drivers)(711,712)를 이용하여 DRAM 모듈의 데이터 포트를 입력 버스(300)와 출력버스(350)에 접속한다. 멀티플렉서(420)는 어드레스 버스(425)상의 판독 어드레스(542) 및 기록 어드레스(532)를 다중화하는데 사용된다. 기록 인에이블 신호(write enable signal)(585)는 멀티플렉서(420)를 제어하고, 또한 SRAM 모듈 및 DRAM 모듈에 기록 인에이블 제어(write enable control)를 제공한다.
DRAM 제어기(750)는 어드레스 버스(425)로부터 수신된 어드레스를 사용하여 각 DRAM 모듈에 대해 어드레스 신호 및 칩 선택(chip select) 신호를 생성한다. 또한, DRAM 제어기는 DRAM 모듈에 대해 행 어드레스 선택 신호(row address select signal) 및 열 어드레스 선택 신호(column address select signal)를 생성하고, 메모리 리프레쉬 신호(memory refresh signals)를 제공한다.
SRAM 에 대한 데이터 액세스 시간은 DRAM에 대한 데이터 액세스 시간보다 훨씬 짧다. SRAM 에 제공된 어드레스는 지연 소자(delay element)(410)에서 지연되어 SRAM 및 DRAM 에 대한 액세스 시간이 동일하게 되도록 함으로써, 출력 버스(350)에 대한 경쟁을 피한다. DRAM 모듈이 이전의 요구를 처리중이어서 DRAM 모듈을 액세스하기 위한 요구가 즉시 수용될 수 없으면, 요구 수용 신호(581)는 턴 오프되어 어드레스가 어드레스 큐(520)로부터 디큐되지 않도록 하고, 출력 어댑터로 어떠한 비디오 패킷도 전송되고 있지 않음을 나타내는 신호를 비디오 디스패처(800)에 전송한다.
비디오 메모리내의 ATM 셀은 DRAM 모듈을 통해 인터리브(interleave)된다.
[출력 어댑터]
제9도에는 수정된 출력 어댑터(250')의 상위 아키텍처가 도시되어 있다. ATM 셀은 매 N 클럭 사이클마다(여기서 N 은 출력 어댑터의 수임), 공유 버퍼 또는 비디오 메모리로부터 출력 버스(350)를 통해 수신된다. 로직 블록(logic block)(282)은 출력 버스(350)상에서 수신된 ATM 셀을 직렬화하여 32 비트 폭 또는 16 비트 폭 버스(283)상으로 제공한다. 로직 블록(284)은 비디오 디스패처(800)에 의해 구동되는 버스(271)를 모니터하여, 버스(283)상의 ATM 셀이 공유 버퍼(400)로부터 출력된 것이면, 이 ATM 셀을 멀티플렉서(286)를 통해 출력 링크 인터페이스 로직(output link interface logic)(288)으로 수정되지 않은 채 전송하며, 최종적으로 출력 링크(150)상에 이 셀을 전송한다.
버스(283)상의 ATM 셀이 비디오 메모리로부터 출력된 것이면, 버스(271)는 그 셀의 스트림_아이디를 제공한다. 이 스트림-아이디는 로직 블록(284)에 의해 버스(285)상에 배치되어, 스트림 제어 테이블(280)을 인덱스함으로써 ATM 셀에 대한 헤더 정보를 검색한다. 이 헤더 정보는 버스(289)를 통해 멀티플렉서(286)로 전송되고, 이 멀티플렉서는 버스(283)상에서 수신되고 있는 ATM 셀내에서 이 헤더 정보를 교체시킨다. 로직 블록(284)에 의해 생성된 제어 신호(287)가 이러한 헤더의 교체를 제어한다.
로직 블록(284)은 또한 공유 버퍼(400)로부터 수신된 각 ATM 셀의 헤더를 검사하여, ATM 셀이 출력 어댑터상의 마이크로프로세서(260)로 주소 지정되는지를 판정하고, 마이크로프로세서(260)로 주소 지정된 경우 그 셀을 링크 인터페이스 로직(288)으로 전송하는 대신에 마이크로프로세서(260)로 전송한다. 호스트(10)는 주로 이러한 방식으로 마이크로프로세서(260)와 통신함으로써, 스트림 제어 테이블(280)을 관리한다. 호스트에 의해 마이크로프로세서(260)로 전송되는 두 개의 주된 커맨드는 스트림 제어 테이블에 새로운 엔트리를 생성하는 것이고, 또한 스트림제어 테이블로부터 엔트리를 제거하는 것이다(제7도 참조). 마이크로프로세서(260)는 국부 메모리(local memory)(261)를 이용하여 자신의 프로그램과 데이터를 저장하고, 로직 블록 (284)과 상호 작용하여, 스트림 제어 테이블을 변경시킨다. 호스트는 스트림 제어 테이블 관리 커맨드를 마이크로프로세서 (260) 로 직접 전송하거나, 또는 제어 포인트 프로세서(control point processor)(600)를 통해 전송 할 수도 있다.
전술한 바와 같이, 스위치는 호스트로부터 수신되는 각각의 제어 메시지에 응답하여 복수의 비디오 메시지를 클라이언트 시스템에게 전송해야 한다. 이를 구현하는 하나의 방법은, 전술한 바와같이 호스트가 단일의 제어 메시지로 복수의 비디오 메시지의 전송을 요구하도록 하는 것이었다.
또 다른 방법은 스트림 제어 테이블내의 각각의 스트림에 대해 메시지 계수(message count), 또는 정지시간(stopping time), 또는 정지 링크 포인트 값(stopping link point value)을 지정하는 것이다. 호스트는 비디오 디스패처에 제어 메시지를 전송하고, 제1 비디오 메시지의 전송을 지정함으로써 스트림을 개시한다. 비디오 메시지의 최종 ATM 셀이 출력 어댑터에서 처리됨에 따라 이 스트림에 대해 스트림 제어 테이블에 저장된 스트림에 대한 메시지 계수가 감소되거나, 또는 그 대신에 이 스트림에 대한 정지 시간이 지정된 경우, 정지시간이 전송 시간과 비교되거나, 또는 정지 링크 포인터 값이 버스(271)상에 수신되는 링크 필드와 비교된다. 정지 조건이 충족되면, 적절한 승인이 발생되어 호스트로 전송된다. 정지조건이 충족되지 않으면, 링크 필드 및 흐름 제어 필드를 이용하여 이 스트림의 다음 비디오 메시지를 판독하라는 새로운 요구가 발생되고, 이 새로운 요구는 버스(270) 상에서 비디오 디스패처로 전송된다. 호스트는, 정지 조건의 승인을 수신하면 스트림 제어 테이블내의 정지 조건을 리세트(reset)하라는 커맨드를 출력어댑터로 전송하고, 그 스트림에 대해 전송된 최종 메시지에 뒤이은 비디오 메시지를 전송하라는 제어 메시지를 비디오 디스패처로 전송함으로써, 비디오 스트림의 전송을 지속시킬 수 있다.
전술한 바와 같이, 호스트가 복수의 비디오 메시지(multiple video messages)의 전송을 요구하는 두 가지 상이한 방법을 제공하는 것은, 얼핏 불필요하게 보일 수도 있다. 그러나, 호스트가 비디오 디스패처로 직접 전송된 제어 메시지내의 복수의 비디오 메시지를 요구하는 제1 방법은, 시작 지연(startup latency)이 큰 제2 방법에 비해 짧은 비디오 스트림의 경우 매우 낮은 시작 지연을 갖도록 하며, 이는 제2 방법에서 호스트가 먼저 스트림 제어 테이블내에 정확한 정지 조건을 설정한 후에야 클라이언트 시스템에 대한 비디오 메시지의 전송을 개시할 수 있기 때문이다. 그러나, 제1방법의 단점은 호스트가 클라이언트 시스템에게 지정된 수의 비디오 메시지를 전송하라는 제어 메시지를 스위치에 일단 전송하면, 호스트는 스위치가 모든 비디오 메시지의 전송을 완료할 때까지 간섭할 수 없고, 모든 비디오 메시지가 전송되기 전에는 재생 모드(playback mode)를 변경 시킬 수도 없다. 제2 방법에서, 호스트는 스트림 제어 테이블을 수정하여 언제라도 재생 모드, 정지 조건을 변경하거나, 또는 새로운 개시 포인트를 지정 할 수 있다. 제1 방법은 낮은 오버헤드 및 스트림 시작 지연을 제공하므로, 호스트가 스위치와 빈번하게 상호 작용하도록 요구되는 애플리케이션인 경우에 바람직하다. 제2방법은 호스트가 비디오 메시지의 전송에 대한 제어를 유지할 수 있으므로, 호스트와 스위치간의 상호 작용이 빈번하지 않은 경우에 바람직하다.
[역방향 재생, 고속 순방향 및 되감기의 지원]
앞서의 설명에서는 통상적으로 재생되는 비디오를 전송하는 방법에 대해 언급하였다. 이는 단일의 링크 필드와 단일의 흐름 제어 필드를 이용하여 수행된다. 복수의 재생 모드를 지원하기 위해서는, 어떤 비디오 메시지는 복수의 링크 필드 및 복수의 흐름 제어 필드를 필요로 한다. 이 섹션에서는 먼저 복수의 재생 모드를 지원하기 위해, 비디오 메시지들이 함께 링크되는 방법에 대해 기술하는데, 때로는 각각의 비디오 메시지내의 복수의 링크를 이용한다. 각 링크 필드는 항상 자신의 흐름 제어 필드와 관련되어 있어, 스위치는 링크 필드에 의해 지정된 비디오 메시지를 스케줄링 할 때, 흐름 제어 필드내에 지정된 지연을 도입해야 한다. 다음, 스위치내의 링크 필드 및 흐름 제어 필드를 저장하는, 공간면에서 효율적인 방법(space efficient way)에 대해 기술한다.
MPEG 알고리즘에 의해 압축된 비디오 스트림에서 압축된 프레임은 인트라 코딩형(Intra coded), 예측 코딩형(Predictive coded) 및 양방향 예측 코딩형 (Bidire ctionally predictive coded)의 세 가지의 유형으로 분류될 수 있다. 인트라 코딩된 프레임(I-frames)은 추가 정보 없이 디코딩할 수 있으나, 예측 코딩된 프레임(P-frames)을 디코딩하려면 이 프레임에 선행하는 디코딩된 I-frame 이 필요하다. 양방향 예측 코딩된 프레임(B-frames)을 디코딩하려면 이 프레임에 선행하는 디코딩된 I-frame 또는 P-frame 뿐만 아니라, 이 프레임에 후속하는 디코딩된 I-frame Ehms P-frame 이 필요하다.
제13a도는 비디오 스트림 내의 일련의 프레임(픽쳐)을 도시하고 있다. 제13a도에 도시된 순서는 프레임이 포착되어 디스플레이 되는 순서이며, 본 명세서에서는 이 순서를 프리젠테이션 순서(presentation order)라고 지칭한다. 그러나, B-frame 인 제2 프레임은 제5프레임, 즉 이 B-frame에 후속하는 첫 번째 P-frame 또는 첫 번째 I-frame 이 디코딩될 때까지 디코딩될 수 없다. 따라서, 비디오 스트림의 프레임이 디코딩되는 순서인 디코딩 순서와 프리젠테이션 순서는 상이하다. 제13b도에서, 화살표는 좌측으로부터 우측까지 프리젠테이션 순서로 리스트된 프레임들의 디코딩 순서를 도시한다. 본 발명의 실시예에서, 비디오 스트림내의 압축된 픽쳐 프레임은 디코딩 순서로 저장되므로, 디코딩 순서로 클라이언트 시스템에 전송된다. 순방향 링크(forward link)(941)에 의해 액세스되는 비디오 메시지에서, 압축된 픽쳐 프레임은 디코딩 순서로 나타난다.
비디오의 역방향 재생을 지원하기 위해, 좌측에서 우측으로 순방향 재생을 위한 프리젠테이션 순서로 리스트된 제13c도에 도시된 압축된 픽쳐 프레임이 클라이언트 시스템에게 전송되어 역방향 링크(backwardlink)(942)에 의해 도시된 순서로 디코딩되며, 클라이언트 시스템에 의해 우측에서 좌측으로의 순서로 디스플레이 된다. 비디오 메시지를 액세스 하기 위해 역방향 링크가 이용될 때에는, 압축된 비디오 프레임은 제13c도에 도시된 바와 같이 비디오를 역방향으로 재생하기 위한 디코딩 순서로 나타날 것이다. 비디오 메시지는 고정된 크기를 가지므로, 픽쳐 프레임의 시작 및 종료는 비디오 메시지의 경계와 정렬되지 않을 것이다. 따라서, 역방향 재생(backward play), 고속 순방향(fast forward) 및 되감기(rewind)의 경우처럼 비디오 메시지가 정규 재생 모드와는 다른 순서로 액세스될 때마다, 비디오 프레임의 첫 번째 및 최종 비디오 메시지는 잉여 데이터(extraneous data)를 포함할 것이다. 이 경우, 클라이언트 시스템은 잉여 데이터를 폐기하도록 프로그램되어야 하거나, 또는 채움 바이트(stuffing byte)를 이용하여 픽쳐 프레임의 경계를 비디오 메시지의 경계와 정렬시켜야 한다.
역방향 링크는 프레임의 종료부(ending)를 포함하지 않는 비디오 메시지에는 저장되지 않는데, 그 이유는 이들 프레임의 경우 순방향 링크 및 역방향 링크가 동일하기 때문이다.
고속 순방향 및 되감기 기능은 역방향 재생과 같은 방법으로 지원된다. 링크(943)(제13d도 참조)는 I-프레임의 데이터를 포함하는 최종 비디오 메시지와 다음 I-프레임의 데이터를 포함하는 첫 번째 비디오 메시지를 연결(link)한다. 따라서, 링크(943)가 데이터 액세스에 이용되고, I-프레임이 검색되어 사용자에 전송되는 속도가 정규 재생 모드에서 클라이언트 시스템에 의해 I-프레임이 수신되는 속도보다 빠른 경우, 고속 재생 효과가 성취된다. 정규 재생 모드에서 클라이언트 시스템은 전형적으로 초당 두 개의 I-프레임을 수신하므로, 상기 방안은 고속 순방향 속도가 정상 재생 속도의 약 15배인 경우 유용하다. 보다 느린 속도로 고속 순방향을 지원하기 위해서는 제13d도에 도시된 바와 같이 링크(944)를 이용하여 모든 I 프레임과 P 프레임을 연결할 수 있다. 또한 제13d도에 도시된 링크(945 및 946)는 상이한 두 속도에서 유사한 방법으로 되감기 기능을 지원하는데 이용된다. 또한, 링크(943 및 945)는 I 프레임의 종료부를 포함하는 비디오 메시지에 존재하고, 링크(944 와 946)는 I 프레임 또는 P 프레임의 종료부를 포함하는 비디오메시지에 존재한다. 이들 링크가 비디오 메시지에 저장되어있지 않은 경우에는, 순방향 링크가 이용된다. 마지막으로, 링크(943 과 944)는 링크(944 및 946)에 의해 각각 공유될 수 있는 자신의 흐름 제어 필드를 포함한다.
각각의 비디오 메시지는 상이한 수의 링크 필드를 가지므로, 각각의 비디오 메시지내의 가능한 최대 수의 링크 필드를 저장하는 것은 낭비일 것이다. 필요한 기억 용량을 최소화하기 위해, 링크 필드 및 흐름 제어 필드는 비디오 디스패처내의 태그 저장 장치에 밀집되어 저장되고, 각 비디오 메시지의 링크를 지시하는 고정된 크기의 포인터가 비디오 디스패처에 부가된 태그-포인터 저장 장치(tag pointer storage)에 저장된다. 이제, 비디오 메시지의 어드레스는 태그-포인터 저장 장치로부터 포인터를 획득하는데 이용되고, 이 포인터는 태그 저장 장치로부터 상기 비디오 메시지에 대한 링크를 액세스하는데 이용된다. 태그 포인터 저장 장치의 각 엔트리는 태그 저장 장치에 대한 포인터 이외에도, 마스크(mask) 엔트리를 포함한다. 마스크는 어떤 링크가 존재하는지를 나타낸다.
마지막으로, 역방향, 고속 순방향 및 되감기 재생 모드를 지원하기 위해, 호스트로부터 비디오 디스패처로 전송되는 제어 메시지에 여분 필드(extra field)가 부가된다. 이 필드는 재생모드를 지정한다. 재생 모드 정보는 버스(725 및 540)상의 ATM 셀 어드레스( 및 스트림-아이디)와 함께 운반되고, 큐(540)내에 ATM 셀 어드레스와 함께 저장된다. 따라서, 비디오 메시지의 최종 ATM 셀이 비디오 메모리로부터 검색될 때, 다음 비디오 메시지에 대한 링크 및 그에 대응하는 흐름 제어 필드는 이제 막 전송된 비디오 메시지에 대해 저장된 링크의 세트로부터 상기 재생모드 정보를 이용하여 선택된다.
[다른 실시예]
전술한 공유 버퍼 스위치 설계를 이용한 실시예에서, 비디오 저장 장치는 공유 버퍼 자체를 연장하여 구현되고, 공유 저장 장치로부터 검색된 비디오 패킷(셀)은 스위치의 출력 어댑터로 전송된다. 본 섹션에서는 상기 실시예에 대한 세 가지 대안에 대해 간략하게 기술하는데, 각각의 실시예는 네트워크의 스위치에 사전패킷화된 비디오 정보의 저장을 지원한다.
버퍼가 스위치의 출력 어댑터에 제공되고, 출력 어댑터에 대해 부여된 기능을 수행할 수 있는 처리 능력이 이들 어댑터에서 이용가능한 한, 비디오 저장 장치는 상기 공유 버퍼 설계를 기반으로 하지 않더라도 스위치에 부착될 수 있다. 제10도는 이러한 스위치에 반도체 메모리를 집적하는 통상적인 방법을 도시한다. 제10a도는 스위치 하드웨어(switch hardware)(1100)와 그 제어 장치(1150) 외에 입력 링크(input link)와 출력 큐(output queue)(1250)를 포함한 범용 스위치 (generic switch)(61)를 도시한다. 제10b도는 비디오 메모리(700)를 비디오 디스패처를 통해 출력 큐에 직접 접속함으로써, 비디오 메모리(700)가 이 스위치에 부가될 수 있음을 도시하고 있다. 바람직한 실시예와는 달리, 비디오 데이터는 이제 비디오 디스패처에 의해 출력 어댑터로 전송되고, 정규 네트워크 트래픽과는 상이한 버스상에서 출력 어댑터로 전송된다. 비디오 메모리 관리자(video memory manager)(1600)는 비디오 데이터를 수신한 후, 그것을 비디오 메모리(700)에 기록한다. 이외의 상세한 동작은 공유 버퍼 스위치에 기초한 바람직한 실시예의 경우와 매우 유사하다.
위에서 개략적으로 기술한 바와 같이, 반도체 메모리를 출력 어댑터에 직접 접속할 수 없으면,제11도에 도시된 바와 같이, 스위치의 입력 링크를 이용하여 반도체 저장 장치를 접속할 수 있다. 비디오 저장장치(700)에는 이제 복수의 포트가 형성되어 포트(ports)(800)가 스위치의 입력에 접속된다. 입력 어댑터는 비디오 디스패치 로직을 통합하도록 수정된다. 각각의 수정된 입력 어댑터(200)는 스트림 제어 테이블을 보유하고 자신을 통해 액세스되는 비디오 스트림에 대한 비디오 디스패치 기능을 처리한다. 출력 어댑터(250)는 스위치 하드웨어에 대한 인터페이스가 더 이상 광폭 공유 버스(wide shored bus)가 아니라는 사실을 제외하고는 어댑터(250)와 동일하다. 이러한 방안은, 비디오가 입력 어댑터 및 출력 어댑터를 모두를 통해 이동하므로, 동일한 비디오 처리량을 지원하기 위해 보다 많은 스위칭 하드웨어를 요구한다는 단점을 갖는다. 앞에서 설명된 설계의 경우, 트래픽(traffic)은 대개 출력 어댑터에 직접적으로 통합된 비디오 데이터이므로, 스위치는 보다 적은 수의 입력 어댑터를 포함한다. 보다 적은 수의 입력 어댑터가 이용되는 경우, 입력 어댑터의 하드웨어가 절약될 뿐만 아니라 보다 소형의 스위치를 이용할 수 있다.
마지막으로, 지금까지 설명한 모든 설계에 있어서, 특히 지원되어야 할 스트림의 수가 너무 많지 않다면, 디스크의 어레이(790)에 기초한 저장 장치가 반도체 저장 장치 대신에 이용될 수있다. 소형 반도체 버퍼(795)가 활성 비디오 스트림에 의해 현재 액세스되고있는 비디오의 섹션을 프리페치(prefetch)한다. 비디오 데이터에 대한 액세스는 대체로 순차적이므로 이러한 프리페칭은 정확하게 스케줄 될 수 있다. 시스템의 나머지 부분에게는 모든 비디오 내용이 이 버퍼로부터 인출되는 것처럼 보인다. 제12도는 이러한 방안을 도시한다.

Claims (8)

  1. 다수의 스위치들 중 소정의 스위치로부터 클라이언트 시스템으로 비디오, 멀티미디어 또는 다른 연속 미디어 내용(continuous media content)을 분배하는 방법에 있어서 - 상기 내용은 상기 내용에 대한 현재의 요구 이전이나, 또는 요구가 없어도 사전처리된 패킷의 형태로 저장되고, 데이터 통신 시스템의 일부인 상기 스위치 및 클라이언트 시스템은 호스트 프로세서(host processor) 및 다른 스위치들을 더 포함함. a. 상기 클라이언트 시스템들 중 하나로부터 상기 호스트 프로세서로 전송 요구를 송신함으로써, 상기 내용 또는 그 내용의 일부를 요구하는 단계와, b. 상기 요구된 내용이 저장되어 있는 상기 소정의 스위치를 식별하는 단계와, c. 상기 호스트 프로세서로부터 상기 스위치로 제어 메시지(control message)를 전송하는 단계 - 상기 제어 메시지는 상기 스위치로부터 상기 하나의 클라이언트 시스템으로 상기 내용 또는 그 내용의 일부를 전송하라는 요구를 나타내며, 요구된 내용 또는 그 내용의 일부를 포함하지는 않음- 와, d. 사전처리된 패킷 형태의 상기 요구된 내용 또는 그 내용의 일부의 사본을 상기스위치로부터 상기스위치의 출력 포트(output ports)를 거처 상기 하나의 클라이언트 시스템으로 전송함으로써, 상기 클라이언트 시스템에 의해 상기 사전처리된 패킷들로부터 상기 연속 미디어 내용이 다시 모아질 수 있도록 하고, 그 후에도 사전처리된 패킷 형태의 상기 내용이 상기 스위치의 저장 장치(storage)에 유지되도록 하는 단계- 상기 스위치는 상기 내용 또는 그 내용의 일부를 요구한 상기 클라이언트 시스템들 중 소정의 클라이언트 시스템으로 내용을 독립적으로 전송할 수 있도록 해주는 스위칭 수단(switching means) 및 수 개의 출력 포트를 포함함 -를 포함하는 연속 미디어 내용 분배 방법.
  2. 제1항에 있어서, 상기 각각의 사전처리된 패킷은 상기 내용으로부터의 페이로드(payload)와, 네트워크 프로토콜 스택의 헤더 및 트레일러를 포함하는 연속 미디어 내용 분배 방법.
  3. 다수의 스위치들 중 특정한 스위치로부터 클라이언트 시스템으로 비디오, 멀티미디어 또는 다른 연속 미디어 내용을 전송하는 데이터 통신 시스템에 있어서 - 상기 내용은 상기 내용에 대한 현재의 요구 이전이나, 또는 요구가 없어도 사전처리된 패킷의 형태로 저장되고, 데이터 통신 시스템의 일부인 상기 스위치 및 클라이언트 시스템은 호스트 프로세서를 더 포함함-. a. 상기 클라이언트 시스템들 중 하나로부터 상기 호스트 프로세서로 전송하라는 요구를 송신함으로써, 상기 내용 또는 그 내용의 일부의 전송을 요구하는 수단과, b. 상기 호스트 프로세서로부터 상기 요구된 내용을 저장하고 있는 상기 스위치로 제어 메시지를 전송하는 수단 - 상기 제어 메시지는 상기 스위치로부터 상기 클라이언트 시스템들 중 하나로 상기 내용 또는 그 내용의 일부를 전송하라는 요구를 나타내며, 요구된 내용 또는 그 내용의 일부를 포함하지는 않음- 과, c. 사전처리된 패킷 형태의 요구된 내용 또는 그 내용의 일부의 사본을 스케줄링(scheduling)하여, 상기 스위치로부터 상기 클라이언트 시스템들 중 하나로 전송하는 수단과, d. 스위칭 수단 및 수 개의 출력 포트를 구비한 상기 스위치가 상기 내용 또는 그 내용의 일부를 요구하는 소정의 상기 클라이언트 시스템으로 내용을 전송할 수 있도록 하고, 그 후에도 사전처리된 패킷 형태의 상기 내용이 상기 스위치의 저장 장치에 유지되도록 하는 수단을 더 포함하는 데이터 통신 시스템.
  4. 데이터 통신 네트워크(data communications network)에 있어서, a. 복수의 스위치(switches)를 포함하는 통신 시스템과, b. 상기 통신 네트워크에 접속된 호스트 프로세서와, c. 상기 통신 네트워크에 접속된 복수의 클라이언트 시스템(clients)을 포함하되, d. 상기 각각의 스위치는, 1) 사전 처리된 비디오 패킷(preprocessed video packets)을 저장하는 특수 메모리 수단과, 2) 상기 사전처리된 비디오 패킷들 중에서 상기 클라이언트 시스템 중 하나의 클라이언트 시스템이 요구한 비디오 패킷의 사본(copies)을 검색하여, 이것을 상기 요구 클라이언트 시스템(requesting client)에게 디스패칭(dispatching)하는 수단과, 3) 상기 사전처리된 패킷내의 네트워크 프로토콜 스택(network protocol stack)의 헤더(headers) 및 트레일러(trailers)로부터는 제공되지 않는 정보를 제공하는 수단- 상기 사전처리된 비디오 패킷은 요구된 비디오 패킷의 사본이 요구 클라이언트 시스템으로 전송된 후에도, 각각의 스위치에 저장된 채로 유지됨- 과, e. 상기 각각의 스위치가 상기 사전처리된 비디오 패킷을 상기 클라이언트 시스템에게 독립적으로 전송하도록 할 수 있는 수단을 포함하는 데이터 통신 네트워크.
  5. 호스트 프로세서, 복수의 스위치 및 복수의 클라이언트 시스템이 접속되는 통신 네트워크를 포함하고, 상기 클라이언트 시스템들 중 하나에 의한 특정한 요구시, 상기 스위치들 중 적어도 하나에 사전처리된 패킷 형태로 저장되어 있는 연속 미디어 내용을 전송하는 데이터 통신 시스템에 있어서, a. 상기 요구 클라이언트 시스템으로 전송될 상기 연속 미디어 내용을 포함하는 각각의 사전처리된 패킷의 사본을 위해, 상기 연속 미디어 내용 또는 그 내용의 일부를 요구하는 클라이언트 시스템으로부터 상기 호스트 프로세서로 요구 메시지를 전송하는 수단과, b. 상기 각각의 사전 처리된 패킷이 저장되어있는 상기 복수의 스위치들 중 하나를 식별하는 수단과, c. 상기 호스트 프로세서로부터 상기 식별된 스위치로 제어 메시지를 전송하는 수단 -상기 제어 메시지는 상기 스위치로부터 상기 클라이언트 시스템으로 상기 각각의 사전처리된 패킷을 전송하라는 요구를 나타내며, 요구된 내용 또는 그 내용의 일부를 포함하지는 않음- 과, d. 상기 각각의 사전처리된 패킷의 사본을 상기 스위치로부터 그 스위치의 출력 포트들 중 하나를 경유하여 상기 네트워크를 거쳐 상기 요구 클라이언트 시스템으로 전송하고, 그 후에도 상기 각각의 사전처리된 패킷이 상기 스위치의 저장 장치에 유지되도록 하는 수단을 더 포함하는 데이터 통신 시스템.
  6. 제4항에 있어서, 상기 내용은 상기 내용의 삭제를 요구하는 독립적인 제어 메시지가 나중에 상기 세트내의 상기 스위치에 전송되는 경우에만, 상기 스위치내의 저장 장치로부터 제거되는 데이터 통신 시스템.
  7. 호스트 프로세서, 복수의 스위치 및 복수의 클라이언트 시스템이 접속되는 통신 네트워크를 포함하는 데이터 통신 시스템에서, 상기 클라이언트 시스템들 중 하나에 의한 특정한 요구시, 상기 스위치들 중 적어도 하나에 사전처리된 패킷 형태로 저장되어 있는 연속 미디어 내용을 전송하는 방법에 있어서, a. 상기 요구 클라이언트 시스템으로 전송될 상기 내용을 포함하는 각각의 사전처리된 패킷의 사본을 위해, 상기 연속 미디어 내용 또는 그 내용의 일부를 요구하는 클라이언트 시스템으로부터 상기 호스트 프로세서로 요구 메시지를 전송하는 단계와, b. 상기 각각의 사전처리된 패킷이 저장되어 있는 상기 복수의 스위치들 중 하나를 식별하는 단계와, c. 상기 호스트 프로세서로부터 상기 식별된 스위치로 제어 메시지를 전송하는 단계 - 상기 제어 메시지는 상기 스위치로부터 상기 클라이언트 시스템으로 상기 각각의 사전처리된 패킷을 전송하라는 요구를 나타내며, 요구된 내용 또는 그 내용의 일부를 포함하지는 않음 - 와, d. 상기 각각의 사전처리된 패킷의 사본을 상기 스위치로부터 그 스위치의 출력 포트들 중 하나를 경유하여 상기 네트워크를 거쳐 상기 요구 클라이언트 시스템으로 전송하고, 그 후에도 상기 각각의 사전처리된 패킷이 상기 스위치의 저장 장치에 유지되도록 하는 단계를 포함하는 연속 미디어 내용 전송 방법.
  8. 호스트 프로세서, 복수의 클라이언트 시스템, 복수의 스위치 및/또는 수 개의 출력 포트를 갖는 라우터(routers)를 포함하는, 연속 미디어 내용 분배 시스템에 있어서, a. 사전 처리된 형태로 저장된 상기 내용의 일부를 전송하라는 요구를 상기 클라이언트 시스템으로부터 수신하는 수단과, b. 요구된 내용을 포함하는 상기 각각의 사전처리된 패킷이 저장되어 있는 소정의 스위치 또는 라우터를 식별하는 수단과, c. 상기 각각의 사전 처리된 패킷의 전송이 요구되었음을 알리는 제어 메시지를 생성하여 상기 소정의 스위치 또는 라우터에 전송하는 수단 - 상기 제어 메시지는 요구된 내용을 포함하지 않음-을 포함하되, 상기 스위치 및/또는 라우터는, 1) 사전처리된 패킷으로 분할된 상기 연속 미디어 내용을 미디어 내용 메모리(media content memory)에 저장하는 수단과, 2) 상기 호스트 프로세서로부터 상기 제어 메시지를 수신하는 수단과, 3) 상기 미디어 내용 메모리내의 상기 각각의 사전처리된 패킷의 사본을 생성하는 수단과, 4) 상기 스위치 또는 라우터의 상기 출력 포트들 중 하나를 통해 상기 특정한 사전처리된 패킷의 상기 사본을 스케줄링하여, 상기 특정한 클라이언트 시스템으로 전송하고, 그후에도 상기 각각의 사전처리된 패킷을 상기 미디어 내용 메모리에 유지시키는 수단을 포함하는 연속 미디어 내용 분배 시스템.
KR1019950025590A 1994-08-23 1995-08-21 데이터 통신 네트워크, 데이터 통신 시스템, 연속 미디어 내용 분배 방법 및 시스템, 연속미디어 내용 전송 방법 KR100209834B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29467394A 1994-08-23 1994-08-23
US8/294,673 1994-08-23

Publications (1)

Publication Number Publication Date
KR100209834B1 true KR100209834B1 (ko) 1999-07-15

Family

ID=23134436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950025590A KR100209834B1 (ko) 1994-08-23 1995-08-21 데이터 통신 네트워크, 데이터 통신 시스템, 연속 미디어 내용 분배 방법 및 시스템, 연속미디어 내용 전송 방법

Country Status (10)

Country Link
US (1) US5758085A (ko)
EP (1) EP0698982B1 (ko)
JP (1) JP3730686B2 (ko)
KR (1) KR100209834B1 (ko)
CN (1) CN1134934C (ko)
AT (1) ATE235128T1 (ko)
BR (1) BR9503452A (ko)
CA (1) CA2149480C (ko)
DE (1) DE69529948T2 (ko)
TW (1) TW252248B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940631B1 (ko) * 2001-07-13 2010-02-05 소니 주식회사 데이터 통신 장치 및 방법, 데이터 통신 시스템, 정보 처리 장치 및 방법, 및 기록 매체

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991301A (en) * 1994-05-05 1999-11-23 Sprint Communications Co. L.P. Broadband telecommunications system
US5793980A (en) * 1994-11-30 1998-08-11 Realnetworks, Inc. Audio-on-demand communication system
US7349976B1 (en) 1994-11-30 2008-03-25 Realnetworks, Inc. Audio-on-demand communication system
US5541918A (en) * 1995-01-31 1996-07-30 Fore Systems, Inc. Method and apparatus for manipulating an ATM cell
US5991811A (en) 1995-09-04 1999-11-23 Kabushiki Kaisha Toshiba Information transmission system utilizing both real-time data transmitted in a normal-in-time direction and in a retrospective-in-time direction
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US7555529B2 (en) 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6950991B2 (en) * 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
CA2196622C (en) * 1996-02-06 2001-10-16 Hiroshi Jinzenji Network data distribution system
JP3258236B2 (ja) * 1996-05-28 2002-02-18 株式会社日立製作所 マルチメディア情報転送システム
US6108655A (en) 1996-07-19 2000-08-22 Cisco Technology, Inc. Method and apparatus for transmitting images and other objects over a computer network system
JP3202606B2 (ja) 1996-07-23 2001-08-27 キヤノン株式会社 撮像サーバ及びその方法及び媒体
EP0821522B1 (en) * 1996-07-23 2008-04-09 Canon Kabushiki Kaisha Camera control apparatus and method
JP3862321B2 (ja) 1996-07-23 2006-12-27 キヤノン株式会社 サーバ及びその制御方法
KR100200625B1 (ko) * 1996-09-30 1999-06-15 윤종용 텔레비젼을 이용한 음성 및 문자 사서함 열람장치 및 방법
US6055560A (en) * 1996-11-08 2000-04-25 International Business Machines Corporation System and method to provide interactivity for a networked video server
US6073160A (en) * 1996-12-18 2000-06-06 Xerox Corporation Document communications controller
GB2323946B (en) * 1997-04-04 2002-04-17 Sony Uk Ltd Database accessing method and apparatus
US6178170B1 (en) * 1997-05-13 2001-01-23 Sprint Communications Company, L. P. System and method for transporting a call
US5991912A (en) * 1997-05-15 1999-11-23 Next Level Communications Digital video transport error handling in cell based communications systems
ES2184295T5 (es) * 1997-06-25 2007-06-01 Samsung Electronics Co., Ltd. Metodo para crear macros para una red domestica.
US6199126B1 (en) * 1997-09-23 2001-03-06 International Business Machines Corporation Processor transparent on-the-fly instruction stream decompression
US6253207B1 (en) * 1997-09-25 2001-06-26 Lucent Technologies Inc. Method and apparatus for transporting multimedia information over heterogeneous wide area networks
US6298406B1 (en) * 1997-10-24 2001-10-02 Sony Corporation Method of and apparatus for detecting direction of reception of bus packets and controlling direction of transmission of bus packets within an IEEE 1394 serial bus node
US6055543A (en) * 1997-11-21 2000-04-25 Verano File wrapper containing cataloging information for content searching across multiple platforms
US6466574B1 (en) * 1998-06-05 2002-10-15 International Business Machines Corporation Quality of service improvement of internet real-time media transmission by transmitting redundant voice/media frames
US6148414A (en) 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6463065B1 (en) 1998-11-17 2002-10-08 Cisco Technology, Inc. Mixed topology data switching system
US6484207B1 (en) * 1998-11-17 2002-11-19 Cisco Technology, Inc. Switching system having interconnects dedicated to store and retrieve data including management of dedicated memory segments allocated when a general memory is depleted
US6665673B1 (en) 1998-11-17 2003-12-16 Cisco Technology, Inc. Channel communication system
US6526452B1 (en) 1998-11-17 2003-02-25 Cisco Technology, Inc. Methods and apparatus for providing interfaces for mixed topology data switching system
US6928469B1 (en) * 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US6330621B1 (en) 1999-01-15 2001-12-11 Storage Technology Corporation Intelligent data storage manager
US7266706B2 (en) * 1999-03-03 2007-09-04 Yottayotta, Inc. Methods and systems for implementing shared disk array management functions
US6895088B1 (en) * 1999-05-21 2005-05-17 Sprint Communications Company L.P. System and method for controlling a call processing system
SE521181C2 (sv) * 1999-07-01 2003-10-07 Telia Ab Förfarande och system för policystyrd distribution av strömmande media i ett IP-nät
WO2001022323A1 (en) 1999-09-20 2001-03-29 Quintiles Transnational Corporation System and method for analyzing de-identified health care data
US6732113B1 (en) * 1999-09-20 2004-05-04 Verispan, L.L.C. System and method for generating de-identified health care data
US6842841B1 (en) 1999-09-21 2005-01-11 Storage Technology Corporation Method and system for dynamically selecting tape drives to connect with host computers
US8165146B1 (en) 1999-10-28 2012-04-24 Lightwaves Systems Inc. System and method for storing/caching, searching for, and accessing data
GB2359209A (en) * 2000-02-09 2001-08-15 Motorola Ltd Apparatus and methods for video distribution via networks
KR20020087053A (ko) * 2000-02-14 2002-11-21 톰슨 라이센싱 소시에떼 아노님 수 개의 패킷에 걸쳐 분할된 메시지를 송신하는 방법
WO2001071524A1 (en) * 2000-03-22 2001-09-27 Yotta Yotta, Inc. Method and system for providing multimedia information on demand over wide area networks
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6785713B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US6922724B1 (en) 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
US6591322B1 (en) * 2000-08-01 2003-07-08 Sun Microsystems, Inc. Method and apparatus for connecting single master devices to a multimaster wired-and bus environment
US20020038456A1 (en) * 2000-09-22 2002-03-28 Hansen Michael W. Method and system for the automatic production and distribution of media content using the internet
JP2002100114A (ja) * 2000-09-25 2002-04-05 Canon Inc 再生装置、再生方法、伝送装置、伝送方法及び記憶媒体
JP2002100113A (ja) * 2000-09-25 2002-04-05 Canon Inc 再生装置、再生方法、伝送装置、伝送方法及び記憶媒体
US20020107971A1 (en) * 2000-11-07 2002-08-08 Bailey Brian W. Network transport accelerator
US7213075B2 (en) * 2000-12-15 2007-05-01 International Business Machines Corporation Application server and streaming server streaming multimedia file in a client specific format
WO2002054708A2 (en) 2001-01-02 2002-07-11 Tranz-Send Broadcasting Network, Inc. System and method for providing load balanced secure media content and data delivery in a distributed computed environment
GB2371726B (en) 2001-01-27 2005-08-17 Mitel Corp Transport protocols for application platforms over network portals
US7545868B2 (en) * 2001-03-20 2009-06-09 Lightwaves Systems, Inc. High bandwidth data transport system
US8766773B2 (en) 2001-03-20 2014-07-01 Lightwaves Systems, Inc. Ultra wideband radio frequency identification system, method, and apparatus
US8270452B2 (en) * 2002-04-30 2012-09-18 Lightwaves Systems, Inc. Method and apparatus for multi-band UWB communications
GB2374703A (en) * 2001-04-19 2002-10-23 Snell & Wilcox Ltd Digital video store
US7774492B2 (en) * 2001-07-26 2010-08-10 Citrix Systems, Inc. System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections
US7027768B2 (en) 2001-10-12 2006-04-11 Bellsouth Intellectual Property Corporation Method and systems using a set-top box and communicating between a remote data network and a wireless communication network
US20030093544A1 (en) * 2001-11-14 2003-05-15 Richardson John William ATM video caching system for efficient bandwidth usage for video on demand applications
US7308001B2 (en) * 2001-11-16 2007-12-11 Computer Network Technology Corporation Fibre channel frame batching for IP transmission
US8811429B2 (en) * 2002-02-19 2014-08-19 Brocade Communications Systems, Inc. Batching and compression for IP transmission
US7027450B2 (en) * 2002-02-19 2006-04-11 Computer Network Technology Corporation Frame batching and compression for IP transmission
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US8000647B2 (en) 2002-10-11 2011-08-16 At&T Intellectual Property I, L.P. Method using a set-top box and communicating between a remote data network and a wireless communication network
US7542471B2 (en) * 2002-10-30 2009-06-02 Citrix Systems, Inc. Method of determining path maximum transmission unit
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US20040223054A1 (en) * 2003-05-06 2004-11-11 Rotholtz Ben Aaron Multi-purpose video surveillance
US7684432B2 (en) * 2003-05-15 2010-03-23 At&T Intellectual Property I, L.P. Methods of providing data services over data networks and related data networks, data service providers, routing gateways and computer program products
US7430187B2 (en) * 2003-05-15 2008-09-30 At&T Intellectual Property I, Lp Methods, systems, and computer program products for providing different quality of service/bandwidth allocation to different susbscribers for interactive gaming
US20040243852A1 (en) * 2003-05-28 2004-12-02 Rosenstein Adam H. Method, system and software for state signing of internet resources
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US7656799B2 (en) 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
CA2534012A1 (en) * 2003-08-06 2005-02-17 Motorola, Inc. Method and apparatus for enabling content provider authentication
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US20050177616A1 (en) * 2003-12-19 2005-08-11 N2 Broadband, Inc. Method and system for distributing services in a digital asset environment
CN1700643B (zh) * 2004-05-20 2014-07-16 深圳市朗科科技股份有限公司 数据交换装置及基于网络的数据交换方法
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US7808906B2 (en) 2004-07-23 2010-10-05 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol using false acknowledgements
KR20070037648A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 주변장치에서 가상 사설망 게이트웨이로 패킷을 라우팅하기위한 방법 및 시스템
KR100707250B1 (ko) * 2004-09-10 2007-04-13 (주) 아이티비엠지 채널 도메인의 활용 시스템 및 그 활용방법
US7818614B2 (en) * 2004-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for reintroducing a processor module to an operating system after lockstep recovery
US7711799B2 (en) * 2004-11-22 2010-05-04 Alcatel-Lucent Usa Inc. Method and apparatus for pre-packetized caching for network servers
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8255456B2 (en) * 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
WO2006081032A2 (en) * 2005-01-24 2006-08-03 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
JP2006252019A (ja) * 2005-03-09 2006-09-21 Hitachi Ltd ストレージネットワークシステム
EP1955526B1 (en) * 2005-12-02 2010-05-05 Citrix Systems, Inc. Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource
US7921184B2 (en) * 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US8244883B2 (en) 2006-08-03 2012-08-14 Citrix Systems, Inc. Systems and methods of for providing multi-mode transport layer compression
GB2441576A (en) * 2006-09-08 2008-03-12 Edgeware Ab Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers
US8826345B2 (en) 2006-09-08 2014-09-02 Edgeware Ab Method and an apparatus for data streaming
GB2441575A (en) * 2006-09-08 2008-03-12 Edgeware Ab Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers
GB2441577A (en) * 2006-09-08 2008-03-12 Edgeware Ab Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers
US9355273B2 (en) * 2006-12-18 2016-05-31 Bank Of America, N.A., As Collateral Agent System and method for the protection and de-identification of health care data
CN101207994A (zh) 2006-12-19 2008-06-25 鸿富锦精密工业(深圳)有限公司 铰链结构
US7706266B2 (en) * 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
EP1981284B1 (de) * 2007-04-12 2020-08-26 ADTRAN GmbH Verfahren zum Auslesen von Daten und Vorrichtung
GB2449068A (en) * 2007-05-08 2008-11-12 Edgeware Ab Data streaming using stored control data
JP5189640B2 (ja) * 2007-08-09 2013-04-24 ジーブイビービー ホールディングス エス.エイ.アール.エル. ビデオデータの再生システム
WO2010002411A1 (en) * 2008-07-03 2010-01-07 Hewlett-Packard Development Company, L.P. Memory server
WO2010049440A1 (en) * 2008-10-29 2010-05-06 Edgeware Ab A method and an apparatus for data recording and streaming
US20100114607A1 (en) * 2008-11-04 2010-05-06 Sdi Health Llc Method and system for providing reports and segmentation of physician activities
US9141758B2 (en) * 2009-02-20 2015-09-22 Ims Health Incorporated System and method for encrypting provider identifiers on medical service claim transactions
CN102714618B (zh) * 2009-06-22 2015-05-13 思杰系统有限公司 用于平台速率限制的系统和方法
US8265050B2 (en) * 2009-08-07 2012-09-11 Time Warner Cable, Inc. System and method for sharing a payload among mobile devices in a wireless network
CN103828304B (zh) * 2011-09-27 2017-12-08 汤姆逊许可公司 用于内容分配系统的用户界面
US9749370B2 (en) 2013-04-06 2017-08-29 Grass Valley Canada Systems and methods for a media playout card
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236250A (en) * 1979-05-21 1980-11-25 Rockwell International Corporation Multiline switch
JPS60219848A (ja) * 1984-04-17 1985-11-02 Fujitsu Ltd ビデオテツクス端末システム
JPS63151240A (ja) * 1986-12-16 1988-06-23 Fujitsu Ltd ビデオ番組分配方式
US4897781A (en) 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US5005122A (en) 1987-09-08 1991-04-02 Digital Equipment Corporation Arrangement with cooperating management server node and network service node
GB8821410D0 (en) * 1988-09-13 1988-10-12 Int Computers Ltd Data processing system
JP2748452B2 (ja) * 1988-11-15 1998-05-06 日本電気株式会社 ダウンラインロード方式
JPH02161844A (ja) * 1988-12-14 1990-06-21 Hitachi Ltd 情報配布サービス方式
US5477541A (en) * 1989-09-29 1995-12-19 White; Richard E. Addressing technique for storing and referencing packet data
US5115426A (en) * 1990-03-30 1992-05-19 At&T Bell Laboratories Broadband isdn packet switching arrangements
US5218697A (en) 1990-04-18 1993-06-08 Microsoft Corporation Method and system for networking computers having varying file architectures
US5093718A (en) 1990-09-28 1992-03-03 Inteletext Systems, Inc. Interactive home information system
US5220420A (en) 1990-09-28 1993-06-15 Inteletext Systems, Inc. Interactive home information system for distributing compressed television programming
JP3073248B2 (ja) * 1991-03-19 2000-08-07 富士通株式会社 ポイント対マルチポイント接続方式
JPH0514342A (ja) * 1991-07-02 1993-01-22 Hitachi Ltd パケツト同報通信方式
US5287461A (en) 1991-10-31 1994-02-15 Sun Microsystems, Inc. Method and apparatus for remotely accessing a plurality of server consoles
US5287507A (en) 1992-03-27 1994-02-15 Sun Microsystems, Inc. Method and apparatus for portable object handles that use local caches
US5490252A (en) * 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
US5442389A (en) * 1992-12-28 1995-08-15 At&T Corp. Program server for interactive television system
US5440334A (en) * 1993-02-01 1995-08-08 Explore Technology, Inc. Broadcast video burst transmission cyclic distribution apparatus and method
JPH06284148A (ja) * 1993-03-30 1994-10-07 Hitachi Ltd 動画通信制御方法及び通信制御装置
US5539449A (en) * 1993-05-03 1996-07-23 At&T Corp. Integrated television services system
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions
DE4328862A1 (de) * 1993-08-27 1995-03-02 Sel Alcatel Ag Verfahren und Vorrichtung zum Zwischenspeichern von Datenpaketen sowie Vermittlungsstelle mit einer solchen Vorrichtung
US5491800A (en) * 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system
US5485455A (en) * 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5508940A (en) * 1994-02-14 1996-04-16 Sony Corporation Of Japan And Sony Electronics, Inc. Random access audio/video processor with multiple outputs
US5488411A (en) * 1994-03-14 1996-01-30 Multimedia Systems Corporation Interactive system for a closed cable network
US5467345A (en) * 1994-05-31 1995-11-14 Motorola, Inc. Packet routing system and method therefor
US5461611A (en) * 1994-06-07 1995-10-24 International Business Machines Corporation Quality of service management for source routing multimedia packet networks
US5583561A (en) * 1994-06-07 1996-12-10 Unisys Corporation Multi-cast digital video data server using synchronization groups

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940631B1 (ko) * 2001-07-13 2010-02-05 소니 주식회사 데이터 통신 장치 및 방법, 데이터 통신 시스템, 정보 처리 장치 및 방법, 및 기록 매체

Also Published As

Publication number Publication date
DE69529948T2 (de) 2003-12-11
CN1118959A (zh) 1996-03-20
CN1134934C (zh) 2004-01-14
EP0698982A3 (en) 1998-04-15
JP3730686B2 (ja) 2006-01-05
ATE235128T1 (de) 2003-04-15
DE69529948D1 (de) 2003-04-24
CA2149480A1 (en) 1996-02-24
BR9503452A (pt) 1996-05-28
EP0698982A2 (en) 1996-02-28
TW252248B (en) 1995-07-21
US5758085A (en) 1998-05-26
JPH0884143A (ja) 1996-03-26
EP0698982B1 (en) 2003-03-19
CA2149480C (en) 2003-10-14

Similar Documents

Publication Publication Date Title
KR100209834B1 (ko) 데이터 통신 네트워크, 데이터 통신 시스템, 연속 미디어 내용 분배 방법 및 시스템, 연속미디어 내용 전송 방법
US5881245A (en) Method and apparatus for transmitting MPEG data at an adaptive data rate
US5978843A (en) Scalable architecture for media-on-demand servers
US5974496A (en) System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card
JP2990345B2 (ja) ネットワークインターフェース
US6005599A (en) Video storage and delivery apparatus and system
US5561791A (en) Method and apparatus for conditioning timed program independent of transport timing
US7694013B2 (en) Duplicating switch for streaming data units to a terminal
US5535209A (en) Method and apparatus for transporting timed program data using single transport schedule
US5862450A (en) Method and apparatus for delivering simultaneous constant bit rate compressed video streams at arbitrary bit rates with constrained drift and jitter
AU752737B2 (en) Scheduling of bursty data streams over a fixed capacity channel
JP3096600B2 (ja) データを供給する装置及びビデオ・オン・デマンドを提供する装置
EP0716370A2 (en) A disk access method for delivering multimedia and video information on demand over wide area networks
US6392996B1 (en) Method and apparatus for frame peeking
JPH10501383A (ja) スケーラブルマルチメディアネットワーク
US6735210B1 (en) Transmit queue caching
EP0738083B1 (en) Interactive video on demand system using packet transmission via ATM network
US5745696A (en) Transport controller for timed program data
US5875300A (en) Cell loss reduction in a video server with ATM backbone network
CA2445798A1 (en) A duplicating switch for streaming data units to a terminal
AU2002305256A1 (en) A duplicating switch for streaming data units to a terminal
Du et al. Building video‐on‐demand servers
Buddhikot et al. Enhancements to 4.4 BSD UNIX for E cient Networked Multimedia in Project MARS
Eberle Switcherland—A scalable interconnection structure for distributed computing
JPH117422A (ja) メモリ搭載型の高速通信インタフェースボードとデータの送受信方法

Legal Events

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

Payment date: 20040216

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee