KR100374070B1 - 다중사용자데이터분배시스템에다중사용자를할당하는방법 - Google Patents
다중사용자데이터분배시스템에다중사용자를할당하는방법 Download PDFInfo
- Publication number
- KR100374070B1 KR100374070B1 KR1019970700429A KR19970700429A KR100374070B1 KR 100374070 B1 KR100374070 B1 KR 100374070B1 KR 1019970700429 A KR1019970700429 A KR 1019970700429A KR 19970700429 A KR19970700429 A KR 19970700429A KR 100374070 B1 KR100374070 B1 KR 100374070B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- user
- information storage
- processor
- storage device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/226—Characteristics of the server or Internal components of the server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/2312—Data placement on disk arrays
- H04N21/2318—Data placement on disk arrays using striping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
- H04N21/2396—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/40—Combinations of multiple record carriers
- G11B2220/41—Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
- G11B2220/412—Distributed storage methods, i.e. the system may autonomously determine for a storage device that provides enough storage capacity for recording
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Processing Or Creating Images (AREA)
Abstract
다중 사용자 데이터 저장, 검색 및 분배 시스템은 디지탈 정보 서버를 형성하는 병렬 처리 컴퓨터 시스템을 포함한다. 상기 서버는 정보 저장 장치에 접속된 다수의 병렬 프로세서를 포함한다. 상기 분배 시스템은 사용자의 요구된 작동 모드를 근거로 상기 사용자를 시스템에 다이나믹하게 할당한다. 상기 시스템은 에러 검출 및 수정을 사용자에 의해 요구된 데이터에 제공한다. 더욱이, 부가 데이터는 각 서비스 주기 동안에 정보 저장 장치에 부가될 수 있고 시스템 작동에 영향이 없이 재교정될 수 있는 정보 저장 장치를 선택한다. 비록 상기 시스템은 상기 데이타가 임의의 순서로 정보 저장 장치로부터 검색되도록 다이나믹하게 사용자를 할당할지라도, 상기 시스템은 상기 데이터가 정보 저장 장치로부터 검색되는 순서에 상관없이 소정된 순서로 출력 데이터를 발생하는 출력 타이밍 시퀀서를 포함한다. 상기 기술된 장치 및 방법은 비디오 서버, 의료 영상, 다른 응용 중에서 오락 시스템으로된 특정 효과 및 애니메이션 및 야외찰영 등에서 응용할 수 있다.
Description
전통적인 전기 데이터 저장 및 검색 시스템에서, 중앙 처리 장치(CPU)에 의해 제어된 메모리 엘리먼트의 은행 또는 어레이에 데이터를 저장하는 것이 통상적이다. 그러한 데이터 저장 시스템은 최신 컴퓨터 시스템의 토대를 형성한다. 전형적으로, 메모리 엘리먼트는 다이나믹 랜덤 액세스 메모리(DRAM) 또는 스태틱 랜덤 액세스 메모리(SRAM)와 같은 반도체 메모리 및 윈체스터 하드 디스크 드라이브와 같은 회전 디스크 자기 메모리(디스크 드라이브 메모리)의 결합이다. 상기 반도체 메모리는 CPU에 의해 즉시 액세스되는 데이터 저장에 사용되고, 한편 디스크 드라이브 메모리는 CPU에 의해 덜 자주 액세스하는 데이터를 저장하는데 전형적으로 사용된다.
전형적으로 데이터의 주어진 량을 저장하기 위하여 반도체 메모리를 사용과 관련된 비용은 동일 량의 데이터를 저장하기 위하여 디스크 드라이브 메모리를 사용하는 것보다 한 배 또는 두 배이다. 그러나 반도체 메모리는 데이터의 대기 시간즉, 데이터가 CPU에 의해 메모리로부터 요구될 때와 상기 요구된 데이터가 CPU에 실재로 사용될 때와의 사이의 시간 지연을 제공하고, 디스크 드라이브 메모리와 관련된 데이터 대기 시간(latency)보다 전형적으로 3배 내지 4배 적은 크기이다. 이와 같이, 데이터 대기 시간이 중요한 응용에서, 반도체 메모리는 비용이 중요하다.
더욱이, 디스크 드라이브 메모리는 전형적으로 "블록-시리얼(block-serial)" 형태로 액세스될 데이터를 요구한다. 이와 같이, 드라이브에 저장된 데이터의 어떤 비트에 임의 액세스는 전형적으로 가능하지 않다. 또한, 기계적인 장치일 경우, 디스크 드라이브 메모리는 기계적인 고장을 겪으며 이에 의해 반도체 메모리보다 낮은 신뢰성을 갖는다.
다중 사용자가 시스템에 저장된 데이터에 동시적으로 액세스할 수 있는 계산 또는 데이터 검색 시스템에서, 다양한 수단이 각각의 사용자 데이터 요구를 연속적 으로 처리하는데 사용된다. 일반적으로, 상기 시스템은 각각의 사용자가 데이터에 독립적으로 액세스하는지를 시뮬레이팅해야 한다. 통상적으로 그러한 시뮬레이션은 선점 또는 순차 실행 다중작업 알고리즘(preemptive or round-robinmultitasking algorithm)에 의해 이룩된다. 시스템 CPU는 계산 또는 데이터 검색시스템의 작동 시스템에 내장된 이러한 알고리즘을 실행한다. 이와 같이, CPU는 각각의 사용자에 시스템의 데이터 저장 메모리의 제어를 "순차 실행" 방법으로 연속하여 전송한다.
디스크 저장 시스템의 명백한 처리 능력을 상승하기 위하여, 많은 컴퓨터 시스템은 단일 디스크로 작동하기 위하여 상호 액세스된 디스크 드라이브를 사용한다. 데이터의 한 블록은 각각의 디스크가 유사한 위치에서 블록의 1/N을 저장하도록 N 디스크에 대해 분포된다, 상기 디스크는 초기 대기 시간 후에, 각각의 디스크로부터 데이터가 블록을 판독하는데 요구되는 시간을 감소하기 위하여 동시에 판독되도록 병렬로 어드레스된다. 처리량의 증가는 다중작업 알고리즘이 사용될 때 저장 시스템이 많은 부가적인 사용자가 이용할 수 있도록 한다. 하지만, 다중 사용자 작동은 유효 대기 시간을 증가시키고, 만약 M 사용자가 서비스된다면, 여러가지 데이터 스트림으로부터 데이터에 대한 사용자의 요구가 M-1 사용자가 처리될 때까지 대기 행렬에 있을 것이다. 평균적으로, 상기 대기 시간은 M/2 정도 증가될 것이다.
주어진 유효 대기 시간을 가진 사용자 수를 증가하기 위하여, 저장 시스템은 병렬 처리 구조에 정렬된 다중 CPU를 사용할 수 있다. 그러한 데이터 저장 시스템에서, 단일 명령이 각각의 프로세서에 의해 각각의 프로세서애 대한 여러 가지 데이터 스트림 상에 작동하기 위하여 사용되고, 다중 데이터 컴퓨터 구조가 전형적으로 사용된다. 다중 데이터 구조에서, 각각의 CPU는 디스크 드라이브 메모리에 부착된다. 이와 같이, 각각의 CPU는 호스트 컴퓨터에 의해 명령된 바와 같이 관련된 디스크 드라이브 메모리에 액세스한다. 그 결과, 상기 프로세서는 개선된 처리 능력을 이룩하기 위하여 병렬로 모든 디스크 드라이브를 동시에 액세스할 수 있다. 이와 같이, 각각의 사용자는 주어진 CPU를 통하여 디스크 드라이브로부터 데이터 블록을 수신한다.
상기 데이터가 시스템으로부터 사용자에 연속적으로 전송되도록 하기 위하여, 상대적으로 대용량의 반도체 메모리가 다수의 CPU로부터 병렬 출력 데이터 스트림을 버퍼링하기 위하여 이용된다. 그러한 데이터 버퍼링은 데이터가뷰잉(viewing)을 위하여 사용자에 전송되는 동안에 인터럽트(interrupt)될 수 없는 비디오 또는 오디오 데이터일 때 필수적으로 필요하다. 그러한 시스템에서, 상기 비디오 및 오디오 데이터는 디스크 드라이브로부터 데이터의 분명한 블록으로서 버퍼링 메모리로 전송된다. 상기 블록은 버퍼링 메모리로서 판독되도록 버퍼링 메모리에 직렬로 정렬되고, 상기 블록은 각각의 사용자에 대해 연속 데이터 스트림을 형성한다.
그러나, 그러한 정보 저장 시스템에서, 상기 버퍼링 메모리는 매우 커야 하고, 이에 따라 고가이다. 예를 들면, M 사용자를 갖는 순차 실행 형태 액세스 시스템에서, 버퍼링 메모리는 주어진 사용자 데이터를 일시적으로 저장해야 하고, 한편 다른 M-1 사용자는 병렬 처리 컴퓨터에 의해 서비스된다. 데이터의 10∼100Kbyte가 1000 사용자에 대해 100-1000디스크 드라이브로부터 판독되는 전형적인 비디오 저장 시스템에서, 상기 버퍼링 메모리는 1-100Gbyte이어야 한다. 그러한 대용량 반도체 메모리 어레이는 매우 고가이다.
저장 매체로서 디스크 드라이브와 관련된 다른 단점은 리스크 드라이브가 연속적이고, 중단되지 않는 판독 또는 기록 작동을 할 수 없다는 사실이다. 전형적으로, 데이터에 액세스를 요구하는 외부 명령은 드라이브가 내부 유지관리 또는 유지 보수 작동을 수행할 때 무시되거나 지연된다. 가장 긴 지연은 드라이브의 헤드위치의 드라이브의 재교정에 의해 도입된다. 그러한 재교정은 드라이브 내의 디스크의 미세한 열 확장으로 인한 미스트래킹(mistracking)하여 발생하는 잘못된 트랙 에러를 교정하기 위하여 주기적으로 이루어진다. 보통, 값싼 디스크 드라이브는 전형적으로 매 10-100분의 작동이 수행되는 재교정 과정을 완성하기 위하여 0.1-1.0초를 요구한다.
출력 데이터 스트림의 인터럽트를 막기 위하여, 데이터 분포 시스템(DDS)은 각각의 디스크 드라이브 재교정 사이클 동안에 출력으로서 사용될 수 있는 데이터를 저장하기 위하여 부가적인 버퍼링 메모리를 제공해야 한다. 데이터가 각각의 사용자에 대해 1 내지 10Mbit/sec에서 사용자에 전달되는 통상적인 시스템에서, 버퍼링 메모리는 1내지 10Mbit의 용량을 가져야 한다. 1000 사용자를 갖는 시스템에 대해, 10Gbit 또는 1.25Gbyte의 반도체 메모리가 요구된다.
그러므로, 버퍼링 메모리의 필요한 용량을 상당히 줄이는 다중 사용자 DDS 및 각각의 사용자에 인식되지 않는 데이터 액세스 대기 시간 주기를 갖는 필요성이 선행 기술에 존재한다.
본 발명은 전자 데이터를 저장하고 액세스하기 위한 시스템에 관한 것이고, 특히 다중 시스템 사용자가 이전에 저장된 전자 데이터 스트림에 독립적으로 액세스할 수 있게 하는 데이터 저장, 검색 및 분배 시스템에 관한 것이다.
도 1은 다중 사용자 데이터 분포 및 전달 시스템의 최고 레벨 블록도;
도 2는 다중 사용자 DDS의 최고 레벨 블록 도;
도 3은 도 2에 도시된 부분의 상세한 블록 도;
도 4는 도 2의 DDS의 디스크 드라이브 어레이에 데이터를 저장하기 위한 바람직한 과정을 나타내는 데이터 저장 맵;
제 5도는 제 4도에 도시된 저장 맵을 사용하여 디스크 드라이브 어레이에 저장된 데이터를 검색하기 위하여 바람직한 과정을 나타내는 데이터 액세스 맵;
제 6도는 도 2에 도시된 DDS에 의해 실행된 데이터 검색 루틴의 흐름도;
제 7도는 도 2에 도시된 DDS에 의해 실행된 사용자 서비스의 흐름도;
도 8은 도 2에 도시된 DDS에 의해 실행된 사용자 재할당 루틴의 흐름도;
도 9는 도 2에 도시된 DDS에 의해 실행된 우선 순위 1 재할당의 흐름도;
도 10은 도 2에 도시된 DDS에 의해 실행된 우선 순위 2. 3 및 4 재할당 루틴의 흐름도,
도 11은 출력 타이밍 시퀀서의 블록도,
본 발명은 자기 디스크 드라이브, 광학 디스크 드라이브, 랜덤-액세스-메모리 등과 같은 정보 저장 장치에 각각의 액세스된 다수의 병렬 프로세서 컴퓨터인 디지털 정보 서버를 포함하는 다중 사용자 DDS를 이용한다. 상기 시스템은 다수의 디스크 드라이브에서 정보를 저장하기 위하여 공지되지 않는 데이터 스트라이핑(striping) 방법을 사용한다. 이러한 데이터 ㅅ트라이핑 방법은 다수의 디스크 드라이브를 다수의 디스크 드라이브 서브세트로 균등하게 분할한다. 예를 들면, 만약 상기 서버가 500개의 디스크 드라이브를 가지고 서브세트가 5개의 드라이브라면, 100개의 드라이브 서브세트를 가진다, 제 1서브세트가 선택되고 데이터의 연속 블록이 디스크 드라이브의 서브세트에 반복 스트라이핑 방식으로 저장된다. 그후, 제 1서브세트에 연속한 제 2서브세트가 선택되고, 데이터의 다른 연속 블록이스트라이핑 방식으로 저장된다. 이러한 과정은 각각의 서브세트에 대해 반복된다. 모든 서브세트가 데이터를 저장하기 위하여 사용될 때, 상기 방법은 제 1서브세트로 복귀하고 데이터의 다음 연속한 블록을 저장한다. 이러한 방법을 사용하여, 많은 데이터 소스는 다중 사용자에 의해 다음 액세스를 위해 디스크 드라이브에 저장될 수 있다. 모든 프로세서를 효율적으로 이용하기 위하여, 입력 데이터는 각각의 연속 데이터 블록이 디스크 드라이브 서브세트에서 동시에 저장되도록 특정 명령으로 사전에 조정된다.
본 발명의 다른 특징은 선행 기술 DDS에 대해 대기 시간을 개선하고 테이터 버퍼링의 필요한 크기를 줄이기 위하여 상기 기술된 방법으로 저장된 데이터를 이용하는 데이터 검색 방법이다. 상기 방법은 사용자가 할당된 다수의 슬롯을 포함하는 서비스 주기를 한정한다. 주어진 슬롯내에서 할당된 사용자는 데이터를 사용자에 공급하기 위하여 디스크 드라이브 서브세트중 하나에 액세스한다. 본 발명의 액세스 방법을 사용하여, 사용자는 각각의 사용자에 서비스되는 특정 시간 및 그들을 서비스하는 서브세트가 서비스 주기별로 가변하도록 서비스 주기에 슬롯에 동적으로 할당된다. 그러나, 각각의 및 모든 사용자는 각각의 서비스 주기 동안에 늘 서비스된다. 서비스 주기 내의 사용자의 할당은 사용자의 현재 작동 모드 및 다음 작동 모드(다음 서비스 주기에서 사용될 모드)에 의해 한정된다. 부가적으로, 상기 방법은 디스크 드라이브로부터 검색된 데이터에 대한 에러 검출 및 수정을 제공한다. 더욱이, 상기 방법은 새로운 데이터가 각각의 서비스 주기 동안에 디스크 드라이브에 부가될 수 있게 하고, 선택된 수의 디스크 드라이브가 시스템 작동에 영향이 없이 재교정될 수 있도록 한다.
사용자의 동적인 할당으로 인하여, 데이터는 사용자가 각각의 서비스 주기 동안에 할당되는 순서에 따라 서버에 의해 정상적으로 발생될 수 있다. 그래서 데이터 출력 순서는 서비스 주기별로 가변할 것이다. 결과적으로, DDS에 액세스된 어떤 데이터 전달 시스템도 정확한 사용자에게 데이터를 적절히 라우팅(routing)하기 위하여 DDS에 의해 발생된 데이터의 현재 순서를 결정해야만 한다. 이러한 부담스런 데이터 전달 시스템을 경감하기 위하여, 상기 DDS는 사용자가 서비스 주기내에 어떤 순서로 재 할당되었는지에 상관없이 각각의 및 모든 서비스 주기에 대해 반복되는 순서로 서버로부터 데이터를 재정렬하는 출력 타이밍 시퀀서를 포함한다.
이해를 편리하게 하기 위하여, 도면에 공통적인 동일 엘리먼트를 나타내기 위하여 가능한 동일 참조 번호가 사용되었다.
도 1은 사용자 데이터 분배 및 전달 시스템(100)의 상위레벨 블록도를 도시한다. 전체 시스템은 2개의 개털 시스템 엘리먼트를 포함하며; 즉, 분포 센터(102)는 데이터 저장, 검색 및 분포 시스템(106)을 갖고, 데이터 전달 시스템(104)은 "허브 및 스포크(hub and spoke)" 네트워크 장치를 갖는다. 일반적으로, 상기 전달 시스템(104)은 통상적인 데이터 분배 허브를 형성하는 네트워크 인터페이스 유니트(110)에 링크된 다수의 사용자(108)를 포함한다. 전달 시스템 인터페이스 유니트(도시되지 않았음)는 전달 시스템과 호환되는 방법으로 분배 시스템으로부터의 데이터를 포맷하기 위하여 사용될 수 있다. DDS(또는 전달 시스템 인터페이스 유니트)로부터 네트워크 인터페이스 유니트까지 데이터 링크는 전형적으로 표준 T1 링크와 같은 고속의 데이터 멀티플렉싱된 링크이다. 허브는 이러한 링크로부터 데이터를 디멀티플렉싱하고 그리고 사용자는 DDS(106)으로부터 요구된 일련의 데이터스트림을 전송한다. 부가적으로 사용자(108)는 명령 링크를 통하여 데이터 흐름 및그들이 수신하는 데이터 종류를 제어한다. 분포 센터 내의 DDS는 다수의 사용자로부터 수신된 명령을 처리한다. DDS는 명령을 번역하고 실행한다. 데이터 전달 시스템은 지역 전화 시스템, 지역 케이블 회사 또는 어떤 다른 서비스 제공자 조직에 의해 만들어지거나 작동된다. 선택적으로, 데이터 전달 시스템은 에더네트형(Ethernet-like) 지역 네트워크 또는 케이블 텔레비전 분배 공급기에서와 같이 버스 장치를 형성할 수 있다. 사용자가 분배 센터 근처에 있는 경우에는, 데이터 전달 시스템은 데이터 저장, 검색 및 분배 시스템에 직접 액세스로서 대치될 수 있다. 데이터 전달 시스템은 본 발명의 일부분을 형성하지 않고 독자에게 본 발명의 사용 설명을 제공하기 위하여 일반적으로 설명된다.
본 발명의 DDS(106)은 데이터를 적절한 사용자에게 데이터 분배를 편리하게 하기 위하여 호환가능한 데이터 포맷으로 전달 시스템(104)에 전송한다. 본 발명의 DDS(106) 사용자의 적절한 예는 주문형 비디오(video-on-demand: VOD) 시스템내에 있다. 비록 넓은 의미로 본 DDS는 디지털 데이터의 어떤 형태 즉, 오디오 정보, 비디오 정보, 텍스터 정보, 그래픽 등을 분배할 수 있지만, 본 발명의 설명을 단순화하기 위하여, 아래의 설명은 많은 다수의 사용자를 갖는 VOD 시스템 내에 본 발명의 사용에 관하여 초점을 맞출 것이다.
VOD 시스템에서, 사용자는 각각의 사용자가 영화 또는 다른 멀티미디어 프로그램과 같은 비디오 프로그램을 선택할 수 있게 하고 비디오 테이프 플레이어와 같은 제어 기능을 사용한 프로그램의 재생을 제어한다. 특히, 언제든지 프로그램을플레이, 일시 정지, 정지, 고속 감기, 초고속 감기, 되감기, 고속 되감기를 할 수 있다. DDS는 사용자 명령을 빨리 처리하고 수행한다. 중요하게, 시스템의 모든 사용자는 어떠한 수의 프로그램상에서 동일 제어 특징을 동시에 이용할 수 있다. 그래서 각각의 사용자는 많은 용량의 비디오 프로그램의 데이터베이스에 액세스할 수 있는 비디오 테이프 플레이어와 같은 세트 톱(set top) 유니트를 시청한다.
DDS(106)은 인식하지 못할 정도의 지연으로 사용자 명령을 수행하기 위한 특정 장치 및 방법을 포함한다. 전형적으로, 명령이 한 번 수행되면, 상기 요구된 데이터는 멀티플렉싱된 포맷에서 분배 센터에 의해 다수의 사용자 네트워크중 하나로 전송된다. 데이터 전달 시스템 내에서 네트워크 인터페이스는 데이터 스트림을 디멀티플렉싱하고 데이터를 적절한 사용자에 전송한다. 데이터는 디지털 형태로 전송되거나 또는 어떤 경우에 사용자에 의해 사용되기 위하여 아날로그 형태로 전환된다. 스포크 및 허브 데이터 전달 시스템은 한 형태의 네트워크 장치의 한 형태를 설명한다. 당업자는 많은 이용 가능한 데이터 전달 시스템중 하나가 DDS로부터 사용자히 멀티플렉싱된 데이터를 전달하는 기능을 할 것이라는 것을 이해할 것이다.
제 2도에서, 제 1도에 도시된 다중 사용자 DDS(106)의 블록도는 대용량 저장 장치(202), 호스트 컴퓨터(204), 명령 인터페이스(206), 디지털 정보 서버(208), 데이터 멀티플렉싱 회로(210)를 포함한다. 일반적으로, 다수의 사용자(도시되지 않았음)가 라인(212)을 통하여 멀티플렉싱된 일련의 정보를 전송한다. 각각의 라인은 사용자 네트워크를 통하여 다수의 사용자에 접속되는 멀티플렉싱된 채널을 나타낸다.
사용자는 명령 링크를 통하여 DDS(106)의 작동을 제어한다. 명령 링크는 라인(212) 내에 내장되는 것으로 가정한다. 명령 링크의 특정 수행은 전형적으로 데이터 전달 시스템에 의해 정의된다. 각각의 명령 링크로부터의 각각의 명령은 인터페이스(206)에 의해 정의된다. 명령 링크로부터 명령은 인터페이스(206)에 의해 번역된다. 인터페이스(206)는 데이터 전달 시스템으로부터의 명령을 호스트 컴퓨터에 의해 이해될 수 있는 명령 포맷으로 재형성한다. 명령 링크를 사용하며, 사용자는 비디오 프로그램 즉, 선택된 멀티미디어 프로그램을 선택할 수 있고, 그러므로써 비디오 프로그램을 플레이, 정지, 일시정지, 되감기, 고속 감기를 할 수 있다. 다른 말로 하면, VOD 시스템은 통상적인 비디오 카세트 플레이어에 이용할 수 있는 것과 유사한 각각의 사용자 기능에 제공한다.
작동시, 사용자가 정보 즉, 선택된 멀티미디어 스트림을 요구할 때, 호스트 컴퓨터는 저장 장치(202)(예를 들면 비디오 테이프 라이브러리)로부터 정보를 검색하고 검색된 정보를 서버(208)에 분배한다. 서버는 정보를 저장하는 국부 메모리(디스크 드라이브 어레이)를 포함한다, 만약 사용자에 의해 요구된 정보가 서버에 저장된다면, 그러면 대용량 기억장치(206)가 액세스될 필요성이 없다.
특히, 서버(208)는 다중 데이터 스트림(SIMD) 구조를 갖는 병렬 처리 컴퓨터이다. 특히, 서버(208)는 다수의 제어기(216n) 및 각각의 제어기와 관련된 다수의 프로세서 서브시스템(218n, 220n, 222n)을 포함한다. 각각의 프로세서 서브시스템은 윈체스터 형 디스크 드라이브(224n, 226n 및 228n)와 같은 관련된 대용량 저장 장치에 접속되지만 다른 형태의 대용량 저장 장치 즉, 광학 디스크 드라이브, 랜덤액세스 메모리는 자기 디스크 드라이브 대신에 사용될 수 있다.
저장 장치(202)는 다수의 자기 또는 광학 디스크 드라이브 또는 반도체 메모리 또는 이들의 조합을 포함할 수 있다. 그러나, 전형적으로 상기 장치는 하나 이상의 자기 디스크 드라이브이다. 장치(202)로부터의 데이터는 데이터 포맷팅 회로(203) 및 입력/출력(I/O) 회로(214)를 통하여 서버(208) 내에서 디스크 드라이브에 분배된다. 회로(203)는 2개의 기능을 수행한다, 제 1기능은 입력되는 데이터의 다양한 세그먼트가 디스크 드라이브에 동시에 기록되고 저장되도록 장치(202)로부터의 입력 데이터를 버퍼링한다. 제 1기능은 제 4도에 상세히 기술된다. 회로(203)에 의해 수행된 제 2기능은 이러한 방송이 서버(208) 내애 저장될 수 있도록 "방송되지 않음" 또는 생방송과 같은 디지털 입력 데이터를 재포맷 및 버퍼렁하는 것이다. 이와 같이 한 번 저장되면, 이러한 데이터는 이후 언제든지 사용자에 의해 관찰할 수 있다.
I/O 회로는 프로세서 서브 시스템으로부터 병렬 출력 데이터를 64-비트 와이도(64-bit wide) 직렬 비트 스트림으로 병렬 출력 데이터를 결합한다(아래에 상세히 기술됨). 이러한 설명 전체에서, 시스템은 64-비트 와이드 직렬 비트 스트림을 치리하지만 어떤 다른 와이드 비트 스트림 즉, 128-비트 와이드 직렬 비트 스트림 역시 본 발명의 범위 내에 있다. 또한 I/O 회로는 데이터 에러 검출 및 수정뿐만 아니라 프로세서로의 사용자의 동적 할당을 편리하게 하는 인터프로세서 통신 회로를 포함한다. I/O 회로의 자세한 설명은 제 3도 및 제 11도와 관련하여 아래에 제공된다.
최근적으로, I/O 회로(214)로부터 64-비트 와이드 직렬 출력 데이터 스트림은 회로(210)에 전달된다. 그러면, 회로(210)는 많은 수의 사용자 즉, 3000명의 사용자가 멀티플렉싱 회로의 다양한 포트(212)에 액세스될 수 있도록 멀티플렉싱된 방법으로 직렬 데이터를 재포맷한다. 다른 말로 하면, 멀티플렉싱 회로는 다수의 멀티플렉싱된 채널(각각의 채널은 포트에 의해 나타남)로 직렬 출력 데이터 스트림을 재정렬한다. 주어진 채널과 관련된 각각의 사용자는 사용자 데이터가 테이터 전달 시스템을 통하여 전달되는 특정 슬롯에 할당된다.
실례로, DDS의 실질적인 수행에서, 128개의 프로세서 서브시스템 즉, 각각의 제어기 즉, 제어기 2161에 액세스된 프로세서 서브시스템(1181에서 118128)이 있다. 물리적으로, 제어기 및 제어기의 128개의 프로세서 서브시스템은 단일 회로 카드에 장착된다. 각각의 카드는 4개의 프로세서를 포함하는 32개의 프로세서 서브시스템 집적 회로를 포함한다. 서버는 전체 4개의 회로 카드를 포함하고; 그래서 전체512개의 프로세서가 서버에 포함된다. 4개의 프로세서 각각은 각각의 집적된 회로상에 4개의 프로세서 서브시스템을 만들기 위하여 다양한 프로세서 지지 회로 즉, 메모리, 명령 논리, I/O 회로 등과 관련되어 있다. 회로 카드는 컴퓨터(204)를 통하여 서로 액세스된다. 컴퓨터(204)는 일반적으로 프로세서 서브시스템 및 사용자 사이에서 인터페이스로서 이용된다. 부가적으로, 호스트 컴퓨터는 서버(208) 내에서 다양한 제어기 및 프로세서 서브시스템의 작동을 모니터하고 제어하는 주요 제어기로서의 기능을 한다. 당업자는 사용된 프로세서의 수는 주문에 의한 것이고 컴퓨터에대한 특정 응용을 달성하기 위하여 병렬 컴퓨터의 프로세서 수가 쉽게 게 증감될 수 있다. 그러므로 여기에 기술된 본 발명은 어떤 방법으로 서버내에서 정렬된 어떤 수의 프로세서를 갖는 서버에서도 사용될 수 있다.
특히, 제 3도는 제 2도에 도시된 서버(208)의 일부분의 상세한 블록도이다. 제 3도는 디스크 드라이브(2242) 및 제어기 (2161) 뿐만 아니라 I/O 회로(214)의 일부분 및 프로세서 서브시스템(2182)의 상세한 도면이다. 상기 기술된 바대로, 각각의 프로세서 서브시스템은 프로세서(300) 뿐만 아니라 국부 메모리(302) 및 여러 공지된 프로세서 지지 회로(304)를 포함한다. I/O 회로(214)는 각각의 프로세서 서브시스템과 관련된다. 명령 버스(308) 상에서 수행된 명령에 의해 지시된 바와 같이, 프로세서는 내부 레지스터(306) 또는 다른 임의 액세스 반도체 메모리(302)에 저장된 데이터 상에서 산술 또는 논리 작동을 수행한다.
더 특히, 프로세서(300)는 입력 버스(300)를 통하여 입력 데이터가 공급된다. 데이터는 프로세서에 의해 사용될 때까지 입력 레지스터(312)에 일시적으로 저장된다. 입력 레지스터는 각각의 클록 사이클에서 하나의 프로세서 서브시스템에서 다음 프로세서 서브시스템으로 한 워드의 데이터(16비트)를 직렬로 전송한다. 각각의 프로세서 서브시스템에 대한 적절한 입력 데이터가 입력 레지스터에 클록킹되면, 데이터는 모든 프로세서의 내부 레지스터(306)로 동시에 로딩된다. 프로세서 로딩 기능은 제어기(2161)으로부터 버스(308)를 따라서 특정 프로세서 명령 전송에 의해 핀리하게 된다.
I/O 회로는 하나 이상 입력 레지스터(314), 입력 레지스터(312), 내부프로세서 통신(IPC) 버스(318)의 일부분 및 디스크 드라이브 인터페이스(301)를 또한 포함한다. 레지스터(314)는 프로세서의 출력 포트에 액세스된 16-비트 레지스터이고 즉, 각각의 레지스터는 16-비트의 병렬 데이터를 수용하고 출력한다. 출력 레지스터는 제 11도에 전체로 기술된 출력 타이밍 시퀀서(OTS)의 일부분을 형성한다. OTS는 64-비트 와이드 데이터 엘리먼트를 만들기 위하여 4개의 다른 프로세서의 출력 데이터와 각각의 프로세서의 16-비트 출력 데이터를 결합한다. OTS를 사용하는 이유는 시스템의 나머지 부분에 대해 기술됨으로써 명백할 것이다.
각각의 프로세서는 내부프로세서 통신 버스(IPC)(318)를 통하여 이웃하는 프로세서로서 통신할 수 있다. IPC 버스(318)는 데이터 및 다른 정보를 한 프로세서에서 다른 프로세서로 전송되게 허용하는 회로 장치이다. IPC는 정보가 버스를 따라서 양 방향에서 통과될 수 있도록 양-방향이다. IPC 버스의 특정 수행은 본 발명에 중요하지 않고 프로세서가 정보를 공유하기 위하여 어떤 버스도 적절할 것이다. 1993, 7, 12일에 출원된 제 08/091, 935호에 "향상된 대량-병렬 컴퓨터 장치"의 명칭의 미국 특허 출원에 IPC 버스가 기술되어 있고, 1992, 8, 5일에 출원된 제 07/926, 753호의 일부 계속 출원이다.
디스크 드라이브 인터페이스(301)는 디스크 드라이브 서브시스템(2242)을 I/O 회로(214)에 액세스한다. 디스크 드라이브 인터페이스(301)는 디스크에서 프로세서로 정보의 직렬에서 병렬 전환 및 그 역을 수행한다.
각각의 프로세서 서브시스템(2182)은 디스크 제어기(320) 및 디스크 드라이브 유니트(322)를 포함하는 디스크 드라이브 서브시스템(2242)이 (I/O 칩 및 디스크 드라이브 인터페이스를 통하여) 간접적으로 액세스된다. 디스크 제어기(320)는 디스크 드라이브 유니트(322)에서 프로세서로 데이터를 전송하기 위하여 프로세서(300)로부터의 명령을 수행한다. 프로세서 및 디스크 드라이브는 물리적으로 서로 다르기 때문에, 각각의 디스크 제어기와 관련된 프로세서 사이의 전기적인 액세스는 전형적으로 일 비트-직렬, 양 방향 데이터 버스에 의해 수행된다.
각각의 프로세서는 제어기(2161)내에 명령 시퀀서(324)로부터 동일한 명령을 수신한다. 명령 시퀀서는 각각의 프로세서에 의해 수행된 프로그램을 형성하는 일련의 명령을 저장한다. 이러한 일련의 명령은 호스트 컴퓨터에 의해 시퀀서로 미리-로딩된다. 프로그램이 로딩되고 실행된 특정 과정은 선행기술에 잘 공지되고 더 이상 추가 논의를 요구하지 않는다.
작동시, 일단 정보가 대용량 저장 장치로부터 일련의 워드 스트림으로서 검색되면, 호스트 컴퓨터는 "데이터 스트라이핑"으로서 선행 기술에 일반적으로 공지된 방법으로 디스크 드라이브 서브시스템에서 정보를 저장하기 위하여 제어기를 명령한다. 특히, 정보는 스트라이핑된 형태로 다수의 디스크 드라이브 중에서 동시에 16비트 워드가 저장된다. 예를 들면 제 4도의 저장 맵(402)에 표시된 바와 같이, 워드 스트림(400)은 낮은 액세스 대기 시간을 가능케 하는 방식으로 505개의 디스크 드라이브 양단에 스트라이핑된 데이터이다. 바람직한 데이터 스트라이핑 기술에 대한 아래의 설명에 대해, 512개의 디스크 드라이브와 관련된 4 세트의 128개의 병력 프로세서(전체 512중 505가 비디오 데이터 저장에 사용되었음)가 있다는 것을 가정한다. 디스크 드라이브는 1에서 512까지 연속적으로 번호가 부여된다. 이러한 데이터를 저장하기 위하여, 상기 505개 디스크 드라이브는 디스크 드라이브의 서브세트 즉, 서브세트 당 5개의 디스크 드라이브로 균등 분할된다. 비디오 프로그램의 일부분이 각각의 서브세트 내에 스트라이핑 패턴으로 저장된다. 이와 같이, 디스크 드라이브(1)는 입력 데이터(400)의 제 1워드(워드1)를 저장하고, 드라이브(2)는 워드(2)를 저장하고, 드라이브(3)는 워드(3)를 저장하고, 드라이브(4)는 워드(4)를 저장하고, 드라이브(5)는 워드(5)를 저장한다. 그후에 워드(6)는 드라이브(1) 상에 저장되고, 워드(7)는 드라이브(2) 상에 저장되고, 드라이브(5)가 정보의 워드(80,000)를 저장할 때까지 즉,, 드라이브(1)에서 드라이브(5)의 데이터 스트라이핑이 16,000반복된다. 그후, 드라이브(6)는 다음 워드(80,001)를 저장하고 모든 정보가 디스크 드라이브에 저장될 때까지 계속된다. 디스크 드라이브(501에서 505)가 80,000워드의 데이터를 저장할 때, 시스템은 다음 80000워드를 저장하기 위하여 디스크 드라이브(1에서 5)로 복귀한다(라인(402)으로 표시된 바와 같이 랩됨). 각각의 드라이브 서브세트 및 모든 서브세트 양단으로 데이터를 스트라이핑하는 이러한 과정은 전체 비디오 프로그램이 저장될 때까지 반복된다.
선행하는 데이터 스트라이핑 논의는 단순함을 위하여 데이터가 동시에 디스크 드라이브의 한 서브세트에 저장된 것을 가정한다. 그러나, 병렬 처리 컴퓨터를 효율적으로 이용하기 위하여, 입력 데이터가 모든 프로세서 및 디스크 드라이브 즉, 모든 505개의 프로세서 및 디스크 드라이브를 이용하여 동시에 저장된다. 이러한 동시 저장을 편리하게 하기 위하여, 대용량 저장 장치로부터 입력 데이터를 버퍼링하고 적절한 순서에서 입력 레지스터에 16-비트 데이터 워드의 직렬 스트림을 출력한다. 특정 순서는 모든 입력 레지스터에 모든 워드의 동시적인 저장을 편리하게 한다. 예를 들면, 상기 데이터는 워드 1-5, 워드 80001-80005, 워드 160,001-160,005가 동시에 저장되도록 재정렬되고 그리고 모든 디스크 드라이브 서브세트 양단에서 재정렬된다. 다른 말로 하면 상기 데이터는 제 4도에 도시된 데이터 맵의 전체 로우(row)에서 데이터 워드가 동시에 저장되도록 그렇게 재정렬된다.
유사하게 다른 비디오 프로그램은 디스크 드라이브(6내지 10)를 갖는 제 2프로그램의 저장을 개시함으로서 이러한 데이터 스트라이핑 방법을 사용하여 저장될 수 있다. 그후, 각각의 프로그램의 시작은 디스크 드라이브의 하나의 서브세트에의해 이전에 저장된 프로그램의 시작으로부터 오프셋된다. 이와 같이, 다수의 비디오 프로그램은 디스크 드라이브 양단에 저장될 수 있다. 비록 상기 디스크 드라이브를 스트라이핑하는 데이터에 대한 바람직한 방법이 이상에서 기술되었지만, 당업자는 다른 데이터 스트라이핑 방법이 본 발명으로 사용될 수 있다는 것을 알 것이다. 그래서, 데이터 스트라이핑의 바람직한 방법은 본 발명을 제한함으로서 설명되는 것이 아니라 오히려 데이터 스트라이핑의 설명적인 방법을 고려해야 한다.
또한 아래의 논의에 대해, 상기 입력 데이터 스트림은 에러 수정을 편리하게 하기 위하여 패리티(parity) 워드를 포함하는 것이 가정된다. 예시적으로, 상기 패리티 워드는 4개의 선행 데이터 워드로부터 유도되고 즉, 패리티 워드는 4개의 선행 데이터 워드에서 상기 비트의 한 비트 한 비트 당 배타적 논리합(exclusive-OR)이다. 그래서 모든 50번째 워드는 패리티 워드이고, 모든 50번째 디스크 드라이브는 이전의 4개의 데이터 워드에 대해 패리티 워드를 포함한다. 선택적으로 만약 패리티 워드가 상기 입력 데이터에 포함되지 않는다면, 상기 데이터가 디지털 정보 서버에 저장되듯이 데이터 스트림에 발생되고 삽입될 수 있다.
요구된 정보(비디오 프로그램)가 디스크 드라이브 상에 존재하게 되면, 사용자는 정보가 디스크로부터 사용자 네트워크로 보내지는 것을 요구할 수 있다. 예를 들면, 명령 장치(도시 안됨)를 조작함으로써, 명령이 사용자로부터 명령 인터페이스로 송신된다. 명령 장치를 사용하여, 사용자는 정보를 선택할 수 있고, 정보의 재생을 플레이, 되감기, 고속 되감기, 고속 감기, 초고속 감기, 일시 정지 또는 정지를 선택할 수 있다. 예를 들면, 만약 정보가 선택된 다중 매체 스트림이라면, 사용자는 TV 스크린 상 메뉴로부터 특정 다중 메뉴 스트림을 선택할 수 있다. 상기 다중 개체 스트림이 선택되면, 사용자는 통상적인 비디오 카세트 플레이어를 사용하는 것처럼 다중 매체 스트림의 재생을 제어할 수 있다. 가장 단순한 기능에서, 사용자는 플레이를 선택하고 그리고 다중 매체는 병렬 프로세서에 의해 디스크 드라이브로부터 호출된다. 데이터는 I/O 회로를 통해 멀티플렉싱 회로에 전송된다. 제 2도에 대해 상기 언급한 바와 같이, 멀티플렉싱 회로는 다수의 사용자가 시스템에 액세스될 수 있도록 멀티플렉싱된 방법에서 데이터를 포맷한다.
DDS를 사용하여, 다중 사용자는 동일 또는 다른 정보를 동시적으로 액세스할 수 있다. 부가적으로, 이러한 사용자는 언제든지 정보를 액세스할 수 있고 다수의 속도 즉, 일시 정지, 고속 감기, 또는 되감기에서 화면을 관찰할 수 있다. 따라서,DDS는 중앙 데이터베이스 예를 들면, 비디오 데이터베이스를 형성하고, 이러한 데이터베이스는 사용자가 인식할 수 없을 정도의 대기 시간으로 자신의 집에 있는 전체 데이터베이스를 가진 것처럼 액세싱될 수 있다.
제 5도는 프로세서를 통하여 상기 디스크 드라이브로부터 요구된 데이터 스트림을 전송하기 위하여 궁극적으로 사용자에게 사용된 데이터 맵을 기술한다. 특히, 기능 예를 들면, 재생 플레이가 요구될 때, 사용자는 서비스 주기 내의 슬롯에 할당된다. 한정된 수의 슬롯 예를 들면, 3200개가 존재한다, 아래에 기술된 바와 같이, 사용자가 할당된 실재 슬롯 수는 동적으로 할당되고 초기에는 이용 가능한3200개의 슬롯중 하나일 수 있다. 사용자에 의해 사용된 기능에 따라서, 사용자는 연속하는 서비스 주기 동안에 여러 가지 슬롯에 재할당된다. 그러나, 아래에 언급된 바와 같이, 가능한 3200개의 슬롯중 몇몇은 특정 기능을 수행하기 위하여 저장된다.
일반적으로, 각각의 슬롯은 검색된 데이터 블록 내에서 정보의 연속 "엘리먼트"에 반복적인 액세스를 나타낸다. 이러한 엘리먼트는 1바이트(8-비트) 또는 단일 비트만큼 작은 정보를 포함할 수 있다. 실제 엘리먼트 크기는 애플리케이션에 좌우된다. 지금, 제 4도의 데이터 저장 법에서 각각의 엘리먼트는 4개의 16-비트 워드의 비디오 정보 및 1개의 16-비트 워드의 패리티 정보를 포함하는 것으로 가정한다. 부가적으로, 가능한 300명의 사용자중 100명에 대한 비디오 정보의 100개의 엘리먼트에 동시에 액세스하는 505개의 디스크 드라이브 및 관련된 프로세서(다른 프로세서 및 디스크 드라이브의 어떤 하나의 고장에 이용될 수 있는 다른 7프로세서는 여분)가 있다. 그래서 100개의 슬롯을 한정하는 데이터의 각각의 로우 및 패리티 워드는 동시에 서비스된다. 각각의 슬롯 내에, 슬롯에 할당된 사용자는 16,000번 반복적으로 서비스되고 이러한 액세스와 관련된 80,000 워드의 데이터는 국부 메모리(RAM)에 저장된다. 그래서, 주어진 서비스 주기 동안에, 각각의 프로세서는 주어진 슬롯에 대하여 국부 메모리에 16,000 워드를 저장하고 즉, 30명의 사용자를 서비스하는 한 서비스 주기 후에, 480,000워드가 각각의 프로세서의 국부 메모리예 저장된다.
서비스 주기 내에서, 3000명의 사용자는 500개의 프로세서에 의해 서비스된다. 5개의 프로세서 즉, 프로세서의 하나의 서브세트는 각각의 서비스 주기 동안에 사용자에게 서비스하기 위하여 사용되지 않는다. 이러한 프로세서(제 5도의 서비스 주기(1)의 프로세서(16 내지 20))는 사용자 데이터를 공급하기 위하여 사용되지 않고 한편 그들의 각각의 디스크 드라이브는 재교정된다. 가장 저렴한 디스크 드라이브는 약 매 10 내지 100분의 작동을 주기적으로 완성하는 재교정은 통상적인 과정이다. 재교정이 임의적으로 발생하지 않고 바람직하지 않게 데이터 액세스에 충돌하지 않도록 하기 위하여, 상기 시스템은 각각의 디스크 드라이브를 소정 시간 즉, 소정 재교정 슬롯(RECAL 슬롯) 동안에 교정하게 한다. 디스크 드라이브 서브세트의 재교정은 하나의 서비스 주기내에서 완성된다.
서비스 주기의 끝에서 슬롯의 2개의 로우는 2개의 특정 기능으로 저장된다. 제 1기능은 패리티 워드를 사용하여 수정될 수 없는 에러 즉, 단일 데이터 엘리먼트에서 발생하는 2개 에러를 포함하는 엘리먼트에 2번째 액세스한다. 그와 같이,최초로 액세스된 잘못된 엘리먼트의 디스크 드라이브는 데이터를 검색하기 위한 시트에서 2번째 액세스한다. 만약 데이터가 에러 없이 검색된다면, 잘못된 데이터의 할당에서 국부 메모리에 저장된다 더욱이, 만약 프로세서가 고장이라면, 고장난 프로세서를 여분중 하나로 대치하기 위하여 서버 자체가 교체된다. 만약 디스크 드라이브가 고장이라면, 디스크 드라이브의 데이터가 패리티 워드로서 교정됨으로서 복구될 수 있다. 그러면 상기 드라이브가 교체되고 상기 패리티-재구성된 데이터가 새로운 드라이브에 오리지날 데이터를 복구하기 위하여 사용된다.
2번째 기능은 제 2의 슬롯의 특정 로우 동안에, 더 많은 데이터를 상기 디스크 드라이브에 놓는다, 예를 들면 만약 사용자가 디스크 드라이브에 저장되지 않는 멀티미디어 스트림을 선택한다면, 이러한 로우는 제 4도에 대하여 상기 기술한 바와 같이 동일한 방법으로 선택된 멀티미디어 스트림의 데이터를 저장하는데 사용되고 즉,, 5개의 디스크 드라이브에 대해 프로그래밍되는 비디오 프로그램의 80,000 워드를 저장하고, 그러면 다음 5개의 디스크 드라이브에 대해 다음 80,000 워드를 저장하고 전체 프로그램이 저장될 때까지 계속된다. 서비스 주기의 연속하는 번호에서 이러한 저장 과정을 반복함으로서, 전체 비디오 프로그램이 사용자에 대해 데이터 검색 과정에 충돌 없이 디스크 드라이브에 대해 분배적으로 저장된다.
다음 연속하는 디스크 드라이브 서브세트 즉, 드라이브(21 내지 25)를 재교정하기 위하여, 재교정 기능(RECAL)은 각각의 서비스 주기 동안에 한 슬롯에 의해 향상된다. 그래서, 제 5도에 도시된 바와 같이, 만약 모든 사용자가 플레이 모드에 있는 것을 가정한다면, 모든 사용자는 각각의 연속하는 서비스 주기를 갖는 한 슬롯만큼 진행된다. 이와 같이, 사용자(1)의 다음 80,000 워드의 데이터는 프로세서(6내지 10) 및 디스크 드라이브(6내지 10)에 의해 제공되고, 사용자(2)의 다음 80,000 워드의 데이터가 프로세서(11 내지 15) 및 디스크(11 내지 15)에 의해 제공된다. 에러 수정 및 데이터 채워짐은상기 언급한 바대로 제공된다. 결과적으로, 플레이 기능을 사용하여, 주어진 사용자는 데이터가 80,000 워드 블록으로 저장된 순서로 분배된 데이터를 검색하기 위하여 하나의 프로세서에서 다음 프로세서로 연속적으로 진행된다.
고속 감기와 같은 다른 기능에 대해, 사용자는 연속적으로 데이터를 검색하는 것 대신에 소정 수의 슬롯을 스킵(skip)하여 점프된다. 예를 들면, 만약 사용자(2)가 슬롯(2) 동안에 서비스 주기(1)에서 데이터를 검색한다면 그러면 고속 감기를 요구하고, 사용자(2)에 대한 다음 데이터 엘리먼트가 예를 들면 슬롯(22) 동안에 서비스 주기(2)에서 검색된다. 그 후에, 고속 감기 기능이 중단될 때까지 사용자(2)에 대한 데이터가 검색되는 슬롯이 카운터(20)에 의해 진행된다. 그 결과는 데이터 예를 들면 비디오 프로그램을 통해 고속으로 감긴다. 상기 동일한 일반적인 과정은 정보를 고속 감기, 되감기, 또는 고속 되감기에 사용된다. 고속 감 또는 고속 되감기의 속도는 스킴되는 슬롯의 수에 의해 통제된다. 그래서, 모든 서비스 주기 전에, 사용자는 요구된 기능에 따라서 새로운 슬롯에 재할당되어야 한다. 이러한 재할당 과정의 상세한 내용이 아래에 설명된다.
정지 기능에 대해, 슬롯은 일시 정지 명령이 다른 명령으로 바뀔 때까지 동일 디스크 드라이브로부터 정보에 반복적으로 액세스하기 위하여 사용된다. 물론정지 명령은 현재 위치에서 그 사용자에 대해 정보 분배를 정지시킨다. 액세스되는 현재 디스크 드라이브는 사용자가 시스템을 플레이하는 것을 재개할 때 시스템이 최종 액세스된 디스크 드라이브로부터 데이터 전송을 시작하도록 테이블에서 사용자(ID)로 저장된다.
각 서비스 주기 동안 실행된 데이터 검색 과정의 결과로서, 각각의 서브세트의 국부 메모리는 주어진 프로세서가 서비스를 하는 각각의 30명의 사용자에 대해 16,000워드를 포함한다. 일단 하나의 서비스 주기가 완결되면, 시스템은 다음 연속 서비스 주기 동안 새로운 데이터에 계속해서 액세스한다. 선행하는 서비스 주기로부터 국부 메모리에 저장된 상기 데이터는 상기 디스크 드라이브와 관련된 상대적으로 긴 액세스 시간 동안에 출력된다. 그와 같이, 출력 타이밍 시퀀서(제 11도에 기술된 OTS)를 사용하여, 선행 서비스 주기로부터 데이터가 멀티플렉싱 회로에 출력되고, 한편 동시에 새로운 데이터가 현재 서비스 주기에 대해 국부 메모리에 저장된다.
특히, 제 6도는 각각의 서비스 주기 동안에 이용된 데이터 검색 루틴(600)의 흐름도를 기술한다. 이러한 루틴은 각각의 및 모든 프로세서에 의해 동시에 수행된다. 단순함을 위하여, 아래의 설명은 단일 프로세서 상에서 실행된 것처럼 상기 루틴을 설명하지만, 독자는 상기 루틴이 504개의 다른 프로세서 상에 동시에 실행되는 것을 인식해야 한다.
상기 루틴은 "시작"으로 표시된 단계(602)에 들어간다. 단계(604)에서, 상기 루틴은 현재 사용중인(active) 사용자가 적절한 슬롯에 할당되도록 다수의 테이블을 개시한다. 이러한 테이블은 전체 할당 테이블(GAT) 및 한 쌍의 국부 테이블(LATs)을 포함한다. LAT 쌍은 현재의 LAT(CLAT)와 다음 LAT(NLAT)를 포함한다. 일반적으로, 상기 테이블은 이용 가능한 사용자 슬롯의 현재 기능과 관련 있는 정보 즉, 할당된 사용자의 사용자 신원(ID), 그 사용자의 현재 및 다음 작동 모드, 그 사용자에 서비스되기 위하여 액세스되는 다음 데이터에 대한 디스크 어드레스 등을 포함한다.
특히, 상기 GAT는 각각의 사용자 예를 들면, 3000명의 사용자들에 대한 정보를 포함한다. GAT의 복사는 각각의 프로세서의 국부 메모리에 저장된다. GAT의 변경 예를 들면, 사용자 작동 모드의 변경은 호스트 컴퓨터에 의해 갱신된다. 테이블의 각각의 엔트리는 1에서 3000(사용자 ID에 상응하는)으로 번호가 부여되고, 그 모드에 대해 데이터 검색을 충족시킬 디스크 상에 각각의 사용자 및 메모리 어드레스에 대한 다음 작동 모드를 포함한다. 전형적으로, 디스크 어드레스는 액세스될 16,000 워드의 제 1워드의 어드레스이다.
다른 한편, LAT는 각각의 개별적인 프로세서 즉, 각각의 프로세서에 대한 다른 LAT 쌍과 관련되어 있다. CLAT는 현재 서비스 주기에 대해 관련된 프로세서에 의해 완성되도록 데이터 검색 작동을 한정한다. CLAT는 현재 서비스 주기, 각각의 사용자의 현재 작동 모드 및 액세스되는 데이터 어드레스 동안에 프로세서에 의해 서비스되는 사용자에 대한 사용자 ID 리스트를 포함한다. 이름이 암시하는 바와 같이, NLAT는 다음 서비스 주기 동안에 관련된 프로세서에 의해 완성되도록 데이터검색 작동을 한정한다. NLAT는 다음 서비스 주기, 그들의 작동 모드 및 액세스될 데이터 주소에 서비스되는 사용자에 대한 사용자 ID 리스트를 포함한다.
그래서, 제 6도의 단계(604)에서, 테이블 엔트리는 현재 사용중인 사용자에 대하여 개시된다. 그후에, 단계(606)에서, 사용자가 서비스되고 즉, 사용자 서비스 루틴(700)을 실행함으로서 디스크 드라이브로부터 데이터가 액세스된다. 다음으로, 단계(608)에서, 할당 테이블은 다음 서비스 주기 동안에 이용하기 위하여 새 로운 슬롯에 사용자를 재할당하기 위하여 갱신된다. 사용자 재할당은 사용자 재할당 루틴(800)을 실행함으로써 완성된다. 사용자 서비스 주기 발생 루프(610)는 반복적으로 검색 데이터를 포함하는 연속적인 서비스 주기를 만들기 위하여 반복적으로 실행되고 그후 사용자를 재할당한다.
제 7도에 도시된 바와 같이, 사용자가 슬롯에 이미 재할당된 것으로 가정하면, 사용자 서비스 루틴(700)은 데이터에 대한 사용자 요구를 서비스하기 위하여 모든 기능을 수행한다. 사용자 서비스 루틴은 단계(702)에 들어가고, 이러한 루틴은 이러한 루틴을 수행하는 프로세서가 열적 재교정 스트립 예를 들면, 디스크 드라이브를 재교정을 유도하는데 사용되는 수직 슬롯 내에 있는지를 묻는 단계(704)를 수행한다. GAT, CLAT 및 NLAT는 각각의 테이블의 모드 필드에서 디스크 드라이브가 재교정되는 지의 표시를 포함한다. 만약 질문이 긍정적으로 응답된다면, 상기 루틴은 단계(706)에서 프로세서와 관련된 디스크 드라이브가 디스크 드라이브의 역적 재교정을 유도하도록 한다. 선택적으로, 만약 단계(704)의 질문이 부정적으로 응답된다면, 상기 루틴은 NO 경로를 따라서 단계(708)로 진행한다.
단계(708)에서, 이러한 루틴을 실행하는 프로세서에 의해 다루어진 각각의30명의 사용자에 대한 데이터가 국부 메모리에 액세스되고 저장된다. 그러한 데이터는 프로세서가 각각의 30명의 사용자에 대한 16,000워드를 검색하도록 한다. 16,000 워드의 시작 어드레스는 각각의 사용자에 대해 CLAT내에 포함된다. 상기 프로세서는 그 어드레스에서 데이터 워드를 검색하고 그러면 더스크 드라이브에서 다음 15999워드를 검색한다. 각각의 프로세서와 관련된 각각의 사용자는 연속적으로 이러한 방법으로 서비스된다.
더욱이, 이러한 데이터가 디스크 드라이브로부터 호출(recall)되어 국부 메모리에 저장되기 때문에, 상기 프로세서는 에러 검출을 유도한다. 데이터가 디스크 드라이브로부터 검색되기 때문에, 프로세서 및 디스크 제어기 모두가 통상적인 다항식(polynomial)을 사용하여 검색된 데이터 상에 체크 워드를 계산한다. 검색 끝부분에서, 디스크 제어기는 체크 워드를 프로세서의 내부적으로 계산된 값과의 비교를 위해 프로세서로 보낸다. 이러한 비교는 프로세서로의 테이터 전송시 에러가 검출되도록 한다.
주어진 사용자에 대한 데이터가 국부 메모리에 전송된 후에, 다음 사용자 데이터가 검색된다. 다음 사용자 데이터의 검색 동안에 이전 사용자 데이터에 검출된 에러는 수정된다. 에러 수정 과정을 편리하게 하기 위하여, 이웃하는 프로세서는 IPC 버스를 통하여 패리티 체크를 수행하기 위하여 최근에 검색된 데이터 워드 및 패리티 워드를 공유한다. 엘리먼트에서 다른 4개의 워드와 조합된 패리티 워드는 CRC 에러 검출 알고리즘에 의해 검출된 어떤 단일 데이터 워드를 수정하기 위하여 사용될 수 있다. 만약 한 워드 이상이 잘못되었다면, 상기 에러는 검출될 수 없다.그러므로, 루틴(700)은 단계(710)에서 모든 사용자 데이터가 검색되면 이용되는 특정 에러 수정 슬롯을 한정한다. 이러한 슬롯에서, 잘못된 데이터는 데이터를 정확하게 검색하기 위하여 2번째 액세스된다. 다른 것과 마찰가지로 이러한 슬롯은 16000 워드가 주어진 프로세서에 의해 검색되도록 한다.
단계(712 및 714)에서, 새로운 데이터가 프로세서와 관련된 디스크 드라이브에 로딩된다. 특히, 단계(712)는 적절히 엔코드된 "방송중(live)" 또는 "방송 중단(off-thk-air)" 데이터를 디스크 드라이브에 저장하기 위하여 사용된다. 단계(714)에서, 비디오 정보의 16,000 워드의 블록이 디스크 드라이브에 저장될 수 있다. 최종적으로, 단계(716)에서 상기 루틴(700)은 제 6도의 서비스 주기 발생 루프(610)에 복귀한다.
데이터 검색 루틴이 실행되는 동안, 프로세서는 선행 서비스 주기 동안 국부메모리내에 저장된 데이터를 액세스하고 이러한 데이터를 OTS로 출력한다. OTS는 재할당 프로세서에 의해 변경되지 않는 표준화된 데이터 스트립을 만들기 위하여 데이터를 재구성한다. 다른 말로 하면, OTS는 슬롯에 상관없이 사용자가 OTS에 재할당되는 것을 확인하고, 사용자 데이터는 멀티플렉싱 회로에 의해 적절히 사용되기 위하여 재구성될 것이다.
제 8도는 사용자 재구성 루틴(800)을 기술한다. 서비스 주기당 한 번에서, 이러한 루틴은 각각의 사용자를 사용자의 현재 작동 모드를을 수행하는 적절한 슬롯에 재할당한다. 상기 루틴은 단계(802)에 줄어가고 사용자가 현재 요구된 기능 및 다음 서비스 주기에 수행되기 위하여 수행을 요구하는 기능에 따라서 우선 순위가 정해지는 단계(804)로 진행한다.
일반적으로, 이러한 루틴은 서비스 주기에서 이용할 수 있는 30개의 가능한 슬롯으로 프로세서에 의해 다루어진 30명의 사용자를 재할당하기 위하여 사용된다. 이러한 재할당은 다양한 재할당 테이블에서 정보를 비교함으로서 수행된다. 이러한 정보는 프로세서에게 특정 사용자의 우선 순위를 알리고 즉, 특정 사용자가 특정 프로세서로부터의 데이터에 액세스하거나 상기 사용자가 상기 조사된 데이터에 충돌 없이 이웃하는 프로세서로부터의 정보에 액세스할 수 있게 할 수 있다. 예를 들면 최고. 우선 순위, 우선 순위(1)는 현재 플레이 모드에 있는 사용자에게 늘 할당되고 다음 서비스 주기 동안에 여전히 작동 모드에 있다. 이러한 사용자는 적절한 디스크(디스크가 중요함)로부터 다음 데이터 워드가 제공되어야 하고 정확한 시간(시간이 중요함)에서 또는 사용자가 비디오에서 점프 또는 스킵을 경험할 것이디-. 부가적으로 상기 열적 재교정 과정은 우선 순위(1)에 할당된다.
다른 한편, 예를 들면, 고속 감기를 현재 사용하고 다음 서비스 주기에서 작동 모드를 사용하려고 하는 사용자는 데이터 워드(디스크가 중요하지 않음)의 정확한 다음 세트가 제공될 필요가 없고 적절한 시간(시간이 중요함)에서 데이터 워드로 제공되어야 한다. 만약 상기 비디오가 플레이 모드에서 시작될 때, 제공된 비디오 데이터가 80,000워드가 오프셋되고, 사용자는 실질적으로 인식할 수 없을 것이다. 그래서, 고속 감기로부터 플레이 모드로의 사용자 변화는 보다 낮은 우선순위 즉, 우선 순위(2)가 할당된다. 아래의 테이블은 다양한 모드 및 우선 할당을 요약한다.
테이블 1
다음 가입자 우선 순위 테이블
시간이 중요함
1 = 특정 출력, 이러한 서비스 주기가 서비스되어야 한다.
2 = 일반적인 출력, 이러한 서비스 주기가 서비스되어야 한다.
3 = 이전 출력이 아님, 가능한 한 빨리 서비스되어야 한다.
디스크가 중요함
1 = 디스크 서브세트에 의해 서비스되어야 한다.
2 = ± 1 디스크 서브세트 내에서 서비스되어야 한다.
3 = ± 몇 디스크 서브세트 내에서 서비스되어야 한다.
4 = ± 많은 디스크 서브세트 내에서 서비스되어야 한다.
특정 출력은 정확한 데이터 복구를 편리하게 하기 위하여 사용자에 공급되어야 한다. 일반적으로, 비디오 데이터가 비교되고 데이터 복원 및 적절한 시간에서 사용자의 세트-톱 유니트에 전송되어야 하는 어떤 압축해제(derompression) 제어워드이다. 이와 같이, 이러한 특정 출력(즉, 복원 제어 워드 및 그와 관련된 데이터)이 일반적인 출력 보다 더 큰 시간-중요 우선 순위에 할당된다. 일반적인 출력은 압축된 비디오 데이터를 포함하지 않고, 세트-톱 유니트의 기능성에 필요한 제어 데이터를 포함할 수 있다. 만약 이전 출력이 없다면, 그러면 요구된 출력은 그다지 시간-중요는 아니며, 데이터는 뷰어(viewer) 충돌 없이 다음 서비스 주기라기보다는 연속하는 서비스 주기에서 만들어질 수 있다. 예를 들면, 정지 모드로부터 시작 모드로 진행할 때, 프로그램의 재시작시 하나의 서비스 주기 지연은 비디오 프로그램의 뷰어의 인식과 크게 충돌하지 않을 것이다.
주어진 프로세서와 관련된 CLAT는 상기 프로세서에 의해 현재 서비스되는 각각의 사용자에 의해 수행된 작동 모드를 한정한다. 만약 서비스 주기 동안에, 사용자중 하나는 그의 기능을 변화하고, 호스트 컴퓨터는 사용자의 새로운 기능으로 GAT를 갱신하고, 그 기능을 충족하기 위하여 그 사용자에 보내질 필요가 있는 데이터 어드레스를 갱신한다. 호스트 컴퓨터는 모든 프로세서에 이러한 변화 모드를 방송한다.
현재 서비스 주기 동안에, 상기 프로세서는 사용자에게 현재 서비스되고 있는 GAT 정보를 검색한다. 이러한 GAT 정보는 NLAT에 놓인다. NLAT 기능과 CLAT 기능과 비교하여, 테이블(1)에 따라서 상기 프로세서는 현재 사용자에 대한 우선순위를 결정한다. 부가적으로, 단계(804)에서, HLAT 및 CLAT가 교환(swapping)되고, 각각의 테이블에 대한 포인터는 CALT 정보가 NLAT 정보가 되고 그 역도 가능하도록 교환된다. 각각의 프로세서가 동일 우선 순위 과정을 완성하기 때문에, 모든 사용자는 지금 우선 순위가 부여되고 사용자 재할당 루틴(800)은 단계(806)로 진행한다.
단계(806)에서, 우선 순위 1 사용자는 우선 순위 1 재할당 루틴(900)을 실행함으로써 적절한 슬롯에 재할당된다. 우선 순위 1 사용자가 재할당되면, 루틴(800)은 단계(808, 810, 812)에서 우선 순위 2, 3, 4 재할당 루틴(1000, 1100, 1200)을 각각의 실행함으로써 우선 순위 2, 3, 4 사용자를 재할당한다. 일반적으로, 이러한 루틴을 사용하여, 각각의 프로세서는 보다 낮은 우선 순위 사용자가 할당된 슬롯을 재할당하도록 시도한다. 그러나, 만약 너무 많은 사용자가 단일 프로세서에 의해 서비스된다면, 과다 사용자는 다른 슬롯에서 다른 사용자에게 다루어진다. 이러한 루틴의 각각은 아래에 상세히 기술된다. 단계(814)에서, 사용자 재할달 루틴(800)은 사용자 서비스 루틴(700)으로 복귀한다.
제 9도는 우선 순위 재할당 루틴(900)을 기술한다. 상기 루틴은 단계(902)에 들어가고, 단계(904)로 진행한다. 단계(904)에서 상기 루틴은 IPC 버스를 사용하여 CLAT의 우선 순위 1사용자가 사용자 ID를 다음 슬롯에 사용자를 다루는 이웃하는 프로세서 세트로 통과시키고 즉, ID는 오른쪽으로 다섯 개의 프로세서가 이동된다. 동시적으로, 상기 프로세서는 슬롯을 한정하는 프로세서중 하나로부터 왼쪽까지 우선 순위 1 사용자 ID를 수신한다. 이러한 프로세서 ID는 CLAT에 놓인다.
단계(906)에서, GAT에 저장된 사용자 데이터 어드레스는 로우 즉, 프로세서(501 내지 505)내 최종 슬롯으로부터 다음 슬롯 즉, 프로세서(1 내지 5)의 제 1슬롯까지 통과된 이러한 사용자에 대해 갱신되어야 한다. 일반적으로, 사용자가 한 슬롯에서 다른 슬롯까지 통과되기 때문에, 요구된 데이터의 시작 어드레스가 변화하지 않는다. 그러나 사용자가 최종 슬롯으로부터 다음 로우의 제 1슬롯까지 재할당될 때, 요구된 데이터 어드레스는 16,000어드레스만큼 증가된다. 이것은 데이터가 디스크 드라이브(제 4도 및 관련된 설명 참조) 양단에 분배되기 때문에 발생된다. 결과적으로, 사용자에 대한 GAT 어드레스는 갱신되어야 한다.
단계(908)에서 우선 순위 1 재할당 루틴(900)은 사용자 재할당 루틴(800)으로 복귀한다.
제 10도는 우선 순위 2, 3, 4 재할당 루틴(1000)의 흐름도이다. 상기 루틴은 우선 순위 2 사용자를 재할당하기 위하여 사용되는 것으로 설명될 것이다. 그러나 우신 순위 3 또는 우선 순위 4 사용자를 재할당하기 위하여, 상기 루틴은 이러한 사용자를 처리하기 위하여 재실행된다.
루틴(1000)은 단계(1002)에 들어가고 단계(1004)로 진행한다. 단계(1004)에서, IPC 버스를 사용하여 상기 루틴은 우선 순위(2) 사용자의 사용자 ID를 전형적으로 멀리 있는 다수의 프로세서인 목적지 프로세서로 통과된다. 스킵되는 특정수의 프로세서(또는 프로세서 서브세트)는 사용자의 우선 순위에 좌우된다. 예를 들면, 고속 감기 모드에서 사용자(우선 순위 2 사용자)는 시스템 구성에 따라 수십개 또는 심지어 수 백개의 프로세서를 스킴한다. 그래서, 상기 루틴은 모드에 좌우되고, 사용자 ID를 적절하지만 떨어져 있는 프로세서로 어드레스한다. 동시적으로, 상기 프로세서는 이러한 프로세서에 재할당되어야 하는 사용자의 사용자 ID를 수신한다. 만약 특정 프로세서가 우선 순위 1 사용자를 갖는 이용 가능한 30개의 슬롯에 채워지지 않는다면, 우선 순위 2 사용자를 수용하고 그들을 CLAT에 놓는다. 우선 순위 1 재할당 루틴에서와 같이, 우선 순위 2 재할당 루틴은 단계(1006)서 로우를 변화시킨 사용자에 대해 GAT의 어드레스를 증가한다.
단계(1008)에서, 루틴은 현재 할당된 우선 순위 2 사용자의 번호가 최대로 할당된 사용자 즉, 30보다 큰지를 조사한다. 만약 그렇다면, 과도한 사용자는 재할당되어야 한다. 그래서 만약 상기 질문이 긍정적으로 응답되면 상기 루틴은 단계(1010) 및 (1012)으로 YES 경로를 따라서 진행한다. 우선 순위 2 사용자가 재할당을 더 이상 요구하지 않을 때까지 필요에 따라서 이러한 2개의 단계는 반복적으로 통과하고 사용자 ID를 수신하고 GAT를 갱신한다. 그 포인트에서 단계(1008)에서 질문이 긍정적으로 응답되면 우선 순위 2 재할당 루틴은 단계(1014)에서 사용자재할당 루틴(800)으로 복귀한다.
우선 순위 3, 4사용자를 재할당하기 위하여, 제 10도에 기술된 루틴은 이러한 사용자에 대해 재실행된다. 이와 같이, 모든 사용자는 궁극적으로 적절한 슬롯(프로세서)으로 재할당된다.
각각의 서비스 주기에 대해 선행하는 루틴을 실행한 후에, 30명의 사용자 각각에 대한 16,000 데이터 워드는 각각의 프로세서와 관련된 국부 메모리에 저장된다. 이와 같이, 4개의 연속하는 프로세서 그룹은 특정 사용자에 대해 4개의 데이터워드(64 비트)를 포함하는 데이터 엘리먼트를 한정한다. 패리티 워드는 지금무시된다. 사용자가 다이나믹하게 할당되기 때문에, 특정 사용자 데이터의 특정위치는 임의적이다. 통상적인 멀티플렉싱 회로의 사용을 편리하게 하기 위하여, 서버로부티 데이터가 액세스되고 출력되듯이, 그것은 반복되는 순서가 되어야 한다. 그러므로써, 데이터를 사용자에게 분배하기 위하여 멀티플렉싱 회로에 의해 쉽게 이용될 수 있는 소정된 순서로 사용자 데이터를 재 명령하기 위하여, 출력 타이밍 시퀀서(OTS)가 데이터를 재명령하기 위하여 사용된다.
제 11도는 OTS(1100)의 블록도를 기술한다. 일반적으로, 이러한 회로는 각각의 데이터 엘리먼트를 조사하고 소정 순서로 재명령한다. 단순함을 위하여, 소정 순서는 1에서 3000 까지 사용자 ID의 내림차순 순서이다. OTS를 사용하여, 사용자 출력 데이터의 임의적인 순서는 내림차순 사용자 ID 순서에서 출력 데이터의 64-비트 와이드 시퀀서가 된다. 상기 64-비트 와이드 시퀀서는 각각의 사용자 데이터 엘리먼트의 제 1비트가 라인(1)에 위치하는 64비트 병렬 라인 상에 64-비트 데이터 엘리먼트 출력의 연속으로서 정의되고, 각각의 사용자의 데이터의 제 2비트는 라인(2)상에 그리고 모든 64-비트가 데이터 엘리먼트내에 위치한다. 그래서, 64 병렬 라인은 3000과 관련된 각각의 사용자 데이터 엘리먼트에 대하여 한 비트를 수행한다. 엘리먼트는 1에서 30000까지 순서가 형성되고, 그러면 데이터 엘리먼트의 다음 세트에 대해 반복된다. 결과적으로, 임의적으로 순서화된 입력 데이터는 비록 사용자가 어떤 프로세서에 재할당될지라도 반복될 수 있는 표준 번호 순서가 제공되었다, 그 결과, OTS 회로는 실질적으로, 입력으로서 제 1멀티플렉싱 데이터 스트림 및 출력으로서 제 2멀티플렉싱된 데이터 스트림을 갖는다. 상기 제 2멀티플렉싱된 데이터 스트림은 제 1데이터 스트림의 재구성 버전이다.
특히, OTS는 마스터 카운터(1108), 다수의 데이터 벨기먼트 선택 회로(1102), 다수의 멀티플렉스(MUX)(1104), 출력 레지스터(1106)를 포함한다. 상기 마스터 카운터는 0에서 2999까지 카운팅되고 0으로 롤오버(roll over)되고, 즉, 상기 카운터는 사용자 번호에 상당하는 카운터를 갖는다. 사용자 데이터 엘리먼트는 출력으로 이용할 수 있기 때문에, 저장된 데이터 엘리먼트에 상응하는 사용자 ID에 따라서 데이터 선택 회로 내에 저장된다. 그래서, 점증적으로, 상기 데이터 엘리먼트 선택 회로는 각각의 및 모든 사용자 예를 들면, 1내지 3000명의 사용자에 대해 데이터 엘리먼트(4데이터 워드 또는 64비트)를 저장한다.
카운터(1108)가 연속적으로 1내지 3000까지 카운터하기 때문에, 이러한 카운터는 데이터 엘리먼트 선택 회로를 어드레스하고 마스터 카운터의 각각의 카운터에 대하여 회로중 하나로부터 데이터 엘리먼트를 만든다. 연속적으로 액세스된 MUX(1104)는 각각의 데이터 엘리먼트를 재클록킹을 위하여 64-비트 레지스터(1106)로 통과한다. 재클록킹 이후, 출력은 사용자 ID의 오름차순 순서로 구성된 멀티플렉싱된 데이터 엘리먼트이다.
특히, 데이터 엘리먼트 회로는 서비스 주기내의 모든 사용자 예를 들면, 30명의 사용자 및 4 워드 엘리먼트의 각각에 대한 사용자 ID의 데이터 엘리먼트를 저장하고 2중 버퍼링할 수 있는 레지스터 어레이(1110)를 포함한다. 상기 어레이를 엘리먼트에 저장할 수 있는 2중 버퍼링을 사용할 때 동시적으로 엘리먼트를 검색한다. 이와 같이, 16개의 프로세서의 출력 레지스터는 데이터 엘리먼트 선택 회로(1102)에 액세스된다. 상기 어레이 내의 각각의 64비트 레지스터(1114)는 선택기(112)에 액세스된다. 카운터가 어레이(1110) 내의 사용자 ID에 상응할 때 마스터 카운터가 카운팅됨으로써, 사용자 ID와 관련된 데이터 엘리먼트가 선택기를 통하여 지연(1115)으로 통과된다. 마스터 카운터가 전형적인 2중 버퍼링 방법으로 0에 도달할 때, 이전에 데이터를 저장하는 레지스터는 데이터 검색을 위해 액세스한다.
부가적으로, 만약 데이터 엘리먼트가 선택기를 통하여 통과하면, 이러한 특정 카운터에서 특정 데이터 엘리먼트 선택 회로(1102)는 출력을 갖는다는 것을 나타내는 매치 신호가 발생된다. 데이터 엘리먼트 및 매치 신호는 소정 수의 클록사이클에 대하여 지연(1115)에 유지된다. 특히, 소정된 수의 클록 사이클은 이러한 데이터 엘리먼트 선택 회로를 나타내는 왼쪽으로부터 16개의 프로세서 그룹으로부터 한 클록 사이클과 동일하다. 예를 들면, 가장 왼쪽 프로세서 그룹으로부터 데이터를 포함하는 데이터 엘리먼트 선택 회로는 지연을 갖지 않고, 다음 연속하는 프로세서 그룹으로부터 데이터를 포함하는 회로는 1클록 사이클 지연을 갖고, 다음 연속한 프로세서로부터 데이터를 포함하는 회로는 2클록 사이클 지연을 갖는다.
적절한 지연이 제공된 후에, 데이터 엘리먼트는 MUX(1104)의 한 출력에 제공된다. 입력 선택은 매치 신호에 의해 제어된다. 이런 방법으로, 만약 매치 신호가 선언되면, MUX는 매치 신호를 만드는 데이터 선택 회로에 액세스되는 입력을 선택한다. 그렇지 않으면, 상기 MUX는 다른 입력에 디폴트된다. 이러한 장치를 사용하여, 한 데이터 엘리먼트는 각각의 마스터 카운터를 위해 만들어진다. 각각의 MUX를통하여 현재 통과되는 데이터 엘리먼트는 64 비트 와이드 레지스터(1116)로 클록된다. 이와 같이, 각각의 클록 사이클에 대하여, 데이터 엘리먼트는 MUX(1104) 및 관련된 레지스터(1106)를 통하여 출력 레지스터(1106)에 통과된다. 결과적으로, 레지스터(1106)의 출력은 사용자 ID 즉, 1 내지 3000의 순서로 연속적으로 순서화되는 일련의 64-비트 와이드 데이터 엘리먼트이다.
선행하는 설명에서, OTS 회로는 단일 마스터 클록 및 다수의 지연 회로를 포함한다. 그러나, 그러한 지연 회로는 OTS 집적 회로 상에 부가적인 회로를 요구한다. 그러므로, 선택적인 실시예에서, 데이터 엘리먼트 선택 회로에 개별적으로 액세스된 다수의 마스터 클록이 사용된다. 각각의 마스크 클록의 최초 개시 카운터는 원래의 카운터 지연을 제공하기 위하여 제공된다. 예를 들면, 만약 가장 왼쪽 마스터 카운터는 제로 카운터로 개시된다면, 다음 연속한 카운터는 카운터(2999)로 개시되고, 다음 연속한 카운터는 카운터(2998)로 개시된다. 이와 같이, 카운터는 레지스터 어레이로부터 데이터 엘리먼트를 검색하는 적절한 지연(각각의 데이터 엘리먼트 선택 회로에 대하여 1클록 사이클)을 제공한다.
이러한 재정렬된 엘리먼트 스트림은 데이터 엘리먼트를 적절한 사용자 네트워크에 분배하기 위하여 멀티플렉싱 회로에 의해 쉽게 다루어진다. 설명을 단순화하기 위하여, OTS는 프로세서 서브시스템으로부터 회로를 분리하듯이 기술되는 것을 주목해야 한다. 그러나 당업자는 레지스터 어레이가 서브시스템 중에서 분배되도록 프로세서 서브시스템으로 쉽게 삽입될 수 있다.
비록 본 발명을 설명하는 다양한 실시예가 나타나고 본 명세서에 상세히 설명될 지라도, 당업자는 이러한 설명을 포함하는 많은 다양한 실시예를 쉽게 고안할 수 있다.
본 명세서에 설명된 장치 및 방법은 비디오 서버, 의료 영상, 다른 응용 중에서 오락 시스템으로된 특정 효과 및 애니메이션 및 야외찰영 등에서 응용할 수 있다.
Claims (14)
- 정보 저장 장치에 접속된 다수의 병렬 프로세서를 갖는 병렬 프로세서 컴퓨터를 포함하고, 사용자 명령에 응답하여 데이터를 다수의 사용자에 공급하는 다중 사용자 데이터 분배 시스템에서, 상기 다수의 사용자를 상기 다중 사용자 데이터 분배 시스템에 동적으로 할당하기 위한 방법에 있어서,할당된 프로세서가 다수의 슬롯을 포함하는 서비스 주기내에서 하나의 슬롯을 나타내도록 상기 다수의 사용자 내의 각각의 사용자를 상기 다수의 병렬 프로세서 내의 적어도 하나의 프로세서에 할당하는 단계;상기 각각의 사용자에 대하여 사용자 명령에 응답하여 상기 할당된 프로세서를 이용하여, 상기 할당된 프로세서와 관련된 정보 저장 장치 내에서 데이터의 특정 개별 세그먼트에 액세스하는 단계;데이터의 각각의 특정 개별 세그먼트를 상기 각각의 사용자에 공급하는 단계;상기 각각의 사용자를 상기 각각의 사용자에 의해 선택된 현재 작동 모드에 따라 다음 서비스 주기내에서 다른 슬롯을 나타내는 다른 프로세서에 재할당하는 단계; 및상기 사용자에 대한 데이터의 액세스된 개별 세그먼트의 연속적인 스트림을 만들기 위하여 상기 액세스, 저장 및 재할당 단계를 반복하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 1항에 있어서,상기 액세스, 공급 및 재할당 단계는 각각의 사용자에게 데이터가 공급되는 동안에 순차적인 서비스 주기를 한정하는 것을 특징으로 하는 방법.
- 제 2항에 있어서,상기 재할당 단계는:다음 서비스 주기에서 수행하기 위하여 각각의 사용자에 대하여 선택된 작동모드를 근거로 상기 각각의 사용자를 재할당하는 것을 특징으로 하는 방법.
- 제 2항에 있어서,상기 재할당하는 단계는:상기 일부 사용자에 의해 선택된 상기 작동 모드의 변화에 응답하여, 액세스되는 데이터 세그먼트에 대하여 사용자 작동 모드 및 정보 저장 장치 어드레스 위치를 포함하는 전체 할당 테이블을 갱신하는 단계,현재 서비스 주기에서 사용된 상기 작동 모드를 전체 할당 테이블에서의 상기 작동 모드와 비교하는 단계;상기 비교 단계의 결과를 근거로 각각의 사용자에 우선 순위를 부여하는 단계; 및상기 사용자를 상기 사용자 우선 순위를 근거로 프로세서에 재할당하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 4항에 있어서,상기 우선 순위는 각각의 사용자에 의해 선택된 상기 작동 모드에 응답하여, 각각의 사용자에 제공될 데이터의 개별 세그먼트에 대한 시간 및 디스크 중요성을 결정함으로서 실행되는 것을 특징으로 하는 방법.
- 제 2항에 있어서,상기 각각의 사용자는 데이터가 상기 다수의 정보 저장 장치의 서브세트로부터 액세스되도록 다수의 프로세서의 서브세트 및 정보 저장 장치에 할당 및 재할당되고,상기 정보 저장 장치의 서브세트에서의 각각의 정보 저장 장치로부터 상기 액세스된 데이터는 데이터 엘리먼트를 형성하기 위하여 연결되는 것을 특징으로 하는 방법.
- 제 6항에 있어서,상기 각각의 사용자에 대한 데이터 세그먼트 블록을 나타내는 일련의 데이터 엘리먼트를 생성하도록 상기 각각의 서브세트내 상기 정보 저장 장치에 반복하여 액세스하는 단계; 및상기 각각의 사용자에게 상기 일련의 데이터 엘리먼트를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 7항에 있어서,상기 제공 단계는:메모리내에 상기 각각의 사용자에 대한 일련의 데이터 엘리먼트를 저장하는 단계;상기 메모리로부터 상기 일련의 데이터 엘리먼트를 호출하는 단계, 및상기 데이터 엘리먼트가 호출될 때 상기 일련의 데이터 엘리먼트를 소정 순서로 재정렬하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 8항에 있어서,상기 소정 순서를 가진 일련의 데이터 엘리먼트를 멀티플렉싱하는 단계: 및상기 멀티플렉싱된 데이터를 상기 사용자에게 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 2항에 있어서,상기 액세스 단계는:상기 정보 저장 장치의 각각의 서브세트로부터 액세스된 데이터 엘리먼트내 에러를 검출하는 단계; 및상기 검출된 에러를 수정하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 7항에 있어서, 상기 각각의 데이터 엘리먼트는 패리티 정보를 가지며, 상기 수정 단계는 상기 검출된 에러를 수정하기 위해 상기 패리티 정보를 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 11항에 있어서, 상기 패리티 정보는 상기 정보 저장 장치의 상기 각각의 서브세트를 형성하는 정보 저장 장치중 하나에 저장되며, 상기 패리티 정보는 상기 정보 저장 장치의 각각의 서브세트내 다른 정보 저장 장치내에 포함된 데이터 정보로부터 유도되는 것을 특징으로 하는 방법.
- 제 6항에 있어서,재교정을 위해 상기 정보 저장 장치중 하나의 서브세트를 선택하는 단계; 및상기 선택된 정보 저장 장치의 서브세트는 재교정하면서 나머지 프로세서는 관련된 정보 저장 장치내 데이터 엘리먼트에 액세스하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 6항에 있어서,데이터의 연속 개별 세그먼트의 새로운 스트림을 제공하는 단계; 및상기 정보 저장 장치내에 상기 데이터의 연속 개별 세그먼트의 새로운 스트림을 서비스 주기 동안 저장하며, 동일한 서비스 주기 동안 상기 데이터 세그먼트를 사용자에게 제공하는 단계를 포함하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/275,742 | 1994-07-19 | ||
US08/275,742 US5671377A (en) | 1994-07-19 | 1994-07-19 | System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-7009857A Division KR100377092B1 (ko) | 1994-07-19 | 1995-07-17 | 다중 사용자 데이터 분배 시스템내 저장장치 서브세트상에 데이터 스트림을 스트라이핑하는 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970705256A KR970705256A (ko) | 1997-09-06 |
KR100374070B1 true KR100374070B1 (ko) | 2003-05-12 |
Family
ID=23053618
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970700429A KR100374070B1 (ko) | 1994-07-19 | 1995-07-17 | 다중사용자데이터분배시스템에다중사용자를할당하는방법 |
KR10-2002-7009857A KR100377092B1 (ko) | 1994-07-19 | 1995-07-17 | 다중 사용자 데이터 분배 시스템내 저장장치 서브세트상에 데이터 스트림을 스트라이핑하는 방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-7009857A KR100377092B1 (ko) | 1994-07-19 | 1995-07-17 | 다중 사용자 데이터 분배 시스템내 저장장치 서브세트상에 데이터 스트림을 스트라이핑하는 방법 |
Country Status (8)
Country | Link |
---|---|
US (4) | US5671377A (ko) |
EP (2) | EP1548606A3 (ko) |
JP (1) | JP4195725B2 (ko) |
KR (2) | KR100374070B1 (ko) |
CA (2) | CA2195431C (ko) |
DE (1) | DE69534248T2 (ko) |
ES (1) | ES2240976T3 (ko) |
WO (1) | WO1996002931A1 (ko) |
Families Citing this family (188)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2143556T3 (es) | 1994-10-12 | 2000-05-16 | Touchtunes Music Corp | Sistema de reproduccion audiovisual digital inteligente. |
US8661477B2 (en) | 1994-10-12 | 2014-02-25 | Touchtunes Music Corporation | System for distributing and selecting audio and video information and method implemented by said system |
US7188352B2 (en) | 1995-07-11 | 2007-03-06 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US7424731B1 (en) | 1994-10-12 | 2008-09-09 | Touchtunes Music Corporation | Home digital audiovisual information recording and playback system |
US6769128B1 (en) | 1995-06-07 | 2004-07-27 | United Video Properties, Inc. | Electronic television program guide schedule system and method with data feed access |
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 |
US6449730B2 (en) | 1995-10-24 | 2002-09-10 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5862312A (en) * | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
JP3277787B2 (ja) * | 1995-12-21 | 2002-04-22 | ソニー株式会社 | 音声・映像データ記録・再生装置 |
JP3288213B2 (ja) * | 1996-01-11 | 2002-06-04 | 日本電気株式会社 | サーバ |
US5812741A (en) * | 1996-02-14 | 1998-09-22 | Jack Kennedy Metal Products And Buildings, Inc. | Serial sequencers connected in parallel |
US6469753B1 (en) | 1996-05-03 | 2002-10-22 | Starsight Telecast, Inc. | Information system |
US6175854B1 (en) * | 1996-06-11 | 2001-01-16 | Ameritech Services, Inc. | Computer system architecture and method for multi-user, real-time applications |
GB2315889A (en) * | 1996-07-31 | 1998-02-11 | Ibm | Locating and sampling of data in parallel processing systems |
JPH1091360A (ja) * | 1996-09-12 | 1998-04-10 | Fujitsu Ltd | ディスク制御方式 |
FR2753868A1 (fr) | 1996-09-25 | 1998-03-27 | Technical Maintenance Corp | Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede |
US6748446B2 (en) * | 1996-11-29 | 2004-06-08 | Canon Kabushiki Kaisha | Communication method and apparatus with modification of routing path by intermediate relay apparatus |
EP0951775A1 (en) * | 1997-01-13 | 1999-10-27 | John Overton | Automated system for image archiving |
US6185621B1 (en) * | 1997-03-25 | 2001-02-06 | Philips Electronics N.A. Corp. | Direct copying between disk blocks in memory onto a network as sequential access files |
US6782427B1 (en) * | 1997-04-02 | 2004-08-24 | Allegro Software Development Corporation | Serving data from a resource limited system |
US9113122B2 (en) | 1997-04-21 | 2015-08-18 | Rovi Guides, Inc. | Method and apparatus for time-shifting video and text in a text-enhanced television program |
MX340336B (es) | 1997-07-21 | 2016-07-06 | Gemstar Dev Corp | Metodo para navegar a traves de una guia de programas de television. |
FR2769165B1 (fr) | 1997-09-26 | 2002-11-29 | Technical Maintenance Corp | Systeme sans fil a transmission numerique pour haut-parleurs |
US6434687B1 (en) * | 1997-12-17 | 2002-08-13 | Src Computers, Inc. | System and method for accelerating web site access and processing utilizing a computer system incorporating reconfigurable processors operating under a single operating system image |
US6374336B1 (en) | 1997-12-24 | 2002-04-16 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6415373B1 (en) | 1997-12-24 | 2002-07-02 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US7810123B1 (en) * | 1998-02-18 | 2010-10-05 | Verizon Corporate Services Group Inc. | Method and system for interactive multimedia |
US6961801B1 (en) * | 1998-04-03 | 2005-11-01 | Avid Technology, Inc. | Method and apparatus for accessing video data in memory across flow-controlled interconnects |
JP4234233B2 (ja) * | 1998-05-27 | 2009-03-04 | 富士通株式会社 | 情報記憶装置及びプログラムが記憶された記録媒体 |
US7394816B1 (en) * | 1998-06-26 | 2008-07-01 | Aol Llc, A Delaware Limited Liability Company | Distributing personalized content |
US7103640B1 (en) | 1999-09-14 | 2006-09-05 | Econnectix, Llc | Network distributed tracking wire transfer protocol |
US7233978B2 (en) * | 1998-07-08 | 2007-06-19 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
CN1867068A (zh) | 1998-07-14 | 2006-11-22 | 联合视频制品公司 | 交互式电视节目导视系统及其方法 |
FR2781582B1 (fr) | 1998-07-21 | 2001-01-12 | Technical Maintenance Corp | Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels |
FR2781591B1 (fr) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | Systeme de reproduction audiovisuelle |
US8028318B2 (en) | 1999-07-21 | 2011-09-27 | Touchtunes Music Corporation | Remote control unit for activating and deactivating means for payment and for displaying payment status |
FR2781580B1 (fr) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent |
US6898762B2 (en) | 1998-08-21 | 2005-05-24 | United Video Properties, Inc. | Client-server electronic program guide |
US6298071B1 (en) * | 1998-09-03 | 2001-10-02 | Diva Systems Corporation | Method and apparatus for processing variable bit rate information in an information distribution system |
US6859799B1 (en) | 1998-11-30 | 2005-02-22 | Gemstar Development Corporation | Search engine for video and graphics |
US6389218B2 (en) * | 1998-11-30 | 2002-05-14 | Diva Systems Corporation | Method and apparatus for simultaneously producing compressed play and trick play bitstreams from a video frame sequence |
US7000243B1 (en) | 1998-12-31 | 2006-02-14 | Oncommand Corporation | Allocating computer resources within a video distribution system |
US7444663B2 (en) | 1998-12-31 | 2008-10-28 | Lodgenet Interactive Corporation | Menuing system for controlling content delivery within a video distribution system |
US7536705B1 (en) * | 1999-02-22 | 2009-05-19 | Tvworks, Llc | System and method for interactive distribution of selectable presentations |
US8726330B2 (en) | 1999-02-22 | 2014-05-13 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US6691208B2 (en) * | 1999-03-12 | 2004-02-10 | Diva Systems Corp. | Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content |
US7243133B2 (en) * | 1999-03-30 | 2007-07-10 | Sedna Patent Services, Llc | Method and apparatus for reducing latency in an interactive information distribution system |
US6282207B1 (en) * | 1999-03-30 | 2001-08-28 | Diva Systems Corporation | Method and apparatus for storing and accessing multiple constant bit rate data |
US6604224B1 (en) * | 1999-03-31 | 2003-08-05 | Diva Systems Corporation | Method of performing content integrity analysis of a data stream |
US6289376B1 (en) * | 1999-03-31 | 2001-09-11 | Diva Systems Corp. | Tightly-coupled disk-to-CPU storage server |
US7086077B2 (en) * | 1999-04-01 | 2006-08-01 | Sedna Patent Services, Llc | Service rate change method and apparatus |
US8763053B1 (en) * | 1999-04-01 | 2014-06-24 | Cox Communications, Inc. | File system for a file server of a video-on-demand system |
US6721794B2 (en) | 1999-04-01 | 2004-04-13 | Diva Systems Corp. | Method of data management for efficiently storing and retrieving data to respond to user access requests |
US6233607B1 (en) * | 1999-04-01 | 2001-05-15 | Diva Systems Corp. | Modular storage server architecture with dynamic data management |
US7142567B1 (en) | 1999-04-01 | 2006-11-28 | Sedna Patent Services, Llc | Rate generator in a video on demand system having multiple constant bit rate data |
US6526580B2 (en) * | 1999-04-16 | 2003-02-25 | Digeo, Inc. | Broadband data broadcasting service |
US6473858B1 (en) | 1999-04-16 | 2002-10-29 | Digeo, Inc. | Method and apparatus for broadcasting data with access control |
US6463465B1 (en) * | 1999-05-07 | 2002-10-08 | Sun Microsystems, Inc. | System for facilitating remote access to parallel file system in a network using priviliged kernel mode and unpriviliged user mode to avoid processing failure |
FR2796482B1 (fr) | 1999-07-16 | 2002-09-06 | Touchtunes Music Corp | Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles |
US8341662B1 (en) | 1999-09-30 | 2012-12-25 | International Business Machine Corporation | User-controlled selective overlay in a streaming media |
US7010492B1 (en) | 1999-09-30 | 2006-03-07 | International Business Machines Corporation | Method and apparatus for dynamic distribution of controlled and additional selective overlays in a streaming media |
EP1258142A4 (en) | 1999-12-10 | 2005-08-10 | Sedna Patent Services Llc | METHOD AND DEVICE FOR CARRYING OUT A USER LIFE IN A POLLING VIDEO SERVICE ENVIRONMENT |
DE19960741A1 (de) * | 1999-12-20 | 2001-06-21 | Thomson Brandt Gmbh | System zum Austausch von Daten |
US6681397B1 (en) * | 2000-01-21 | 2004-01-20 | Diva Systems Corp. | Visual improvement of video stream transitions |
AU2001236577A1 (en) * | 2000-01-28 | 2001-08-07 | Williams Communications, Llc | A system and method for mirroring and caching compressed data in a content distribution system |
FR2805377B1 (fr) | 2000-02-23 | 2003-09-12 | Touchtunes Music Corp | Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede |
FR2805060B1 (fr) | 2000-02-16 | 2005-04-08 | Touchtunes Music Corp | Procede de reception de fichiers lors d'un telechargement |
FR2805072B1 (fr) | 2000-02-16 | 2002-04-05 | Touchtunes Music Corp | Procede d'ajustement du volume sonore d'un enregistrement sonore numerique |
EP2285104A1 (en) | 2000-03-31 | 2011-02-16 | United Video Properties, Inc. | System and method for reducing cut-offs in program recording |
US20020010928A1 (en) * | 2000-04-24 | 2002-01-24 | Ranjit Sahota | Method and system for integrating internet advertising with television commercials |
US9788058B2 (en) | 2000-04-24 | 2017-10-10 | Comcast Cable Communications Management, Llc | Method and system for automatic insertion of interactive TV triggers into a broadcast data stream |
US8936101B2 (en) | 2008-07-17 | 2015-01-20 | Halliburton Energy Services, Inc. | Interventionless set packer and setting method for same |
US7702995B2 (en) * | 2000-04-24 | 2010-04-20 | TVWorks, LLC. | Method and system for transforming content for execution on multiple platforms |
US8296792B2 (en) | 2000-04-24 | 2012-10-23 | Tvworks, Llc | Method and system to provide interactivity using an interactive channel bug |
US7051111B1 (en) | 2000-04-25 | 2006-05-23 | Digeo, Inc. | Multiple source proxy management system |
FR2808906B1 (fr) | 2000-05-10 | 2005-02-11 | Touchtunes Music Corp | Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles |
US6356803B1 (en) | 2000-05-19 | 2002-03-12 | International Business Machines Corporation | Automated data storage library distributed control system |
AU2001265180A1 (en) * | 2000-05-31 | 2001-12-11 | Minerva Networks, Inc. | Method and system for pausing and replaying scheduled rich media broadcasts |
US20080005275A1 (en) * | 2000-06-02 | 2008-01-03 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
FR2811175B1 (fr) | 2000-06-29 | 2002-12-27 | Touchtunes Music Corp | Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles |
FR2811114B1 (fr) | 2000-06-29 | 2002-12-27 | Touchtunes Music Corp | Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement |
WO2002015018A1 (en) * | 2000-08-11 | 2002-02-21 | 3Ware, Inc. | Architecture for providing block-level storage access over a computer network |
US8250357B2 (en) | 2000-09-13 | 2012-08-21 | Fortinet, Inc. | Tunnel interface for securing traffic over a network |
FR2814085B1 (fr) | 2000-09-15 | 2005-02-11 | Touchtunes Music Corp | Procede de divertissement base sur les jeux concours a choix multiples |
US7050376B2 (en) | 2000-09-19 | 2006-05-23 | Lg Electronics Inc. | Optical disc player and method for reproducing thereof |
US7103906B1 (en) | 2000-09-29 | 2006-09-05 | International Business Machines Corporation | User controlled multi-device media-on-demand system |
CA2938250C (en) | 2000-10-11 | 2020-01-14 | Rovi Guides, Inc. | Systems and methods for caching data in media-on-demand systems |
KR100971696B1 (ko) | 2000-10-11 | 2010-07-22 | 유나이티드 비디오 프로퍼티즈, 인크. | 데이터의 기억 장치를 주문형 매체 배달 시스템의 서버에 제공하기 위한 시스템 및 방법 |
US6996742B2 (en) * | 2000-11-28 | 2006-02-07 | Sedna Patent Services, Llc | Method for regenerating and streaming content from a video server using RAID 5 data striping |
CA2437035C (en) * | 2001-02-24 | 2009-01-06 | International Business Machines Corporation | Global interrupt and barrier networks |
US6973666B1 (en) * | 2001-02-28 | 2005-12-06 | Unisys Corporation | Method of moving video data thru a video-on-demand system which avoids paging by an operating system |
US20020157113A1 (en) * | 2001-04-20 | 2002-10-24 | Fred Allegrezza | System and method for retrieving and storing multimedia data |
US6883110B1 (en) | 2001-06-18 | 2005-04-19 | Gateway, Inc. | System and method for providing a data backup of a server on client systems in a network |
US7181547B1 (en) | 2001-06-28 | 2007-02-20 | Fortinet, Inc. | Identifying nodes in a ring network |
US20040022202A1 (en) | 2002-08-05 | 2004-02-05 | Chih-Lung Yang | Method and apparatus for continuously receiving images from a plurality of video channels and for alternately continuously transmitting to each of a plurality of participants in a video conference individual images containing information concerning each of said video channels |
US6535240B2 (en) | 2001-07-16 | 2003-03-18 | Chih-Lung Yang | Method and apparatus for continuously receiving frames from a plurality of video channels and for alternately continuously transmitting to each of a plurality of participants in a video conference individual frames containing information concerning each of said video channels |
US6871263B2 (en) | 2001-08-28 | 2005-03-22 | Sedna Patent Services, Llc | Method and apparatus for striping data onto a plurality of disk drives |
US8966527B1 (en) * | 2001-10-16 | 2015-02-24 | The Directv Group, Inc. | System and method for media inserts in a media distribution system |
US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
US7788396B2 (en) * | 2001-11-28 | 2010-08-31 | Interactive Content Engines, Llc | Synchronized data transfer system |
US7437472B2 (en) * | 2001-11-28 | 2008-10-14 | Interactive Content Engines, Llc. | Interactive broadband server system |
US7644136B2 (en) * | 2001-11-28 | 2010-01-05 | Interactive Content Engines, Llc. | Virtual file system |
US7810121B2 (en) * | 2002-05-03 | 2010-10-05 | Time Warner Interactive Video Group, Inc. | Technique for delivering network personal video recorder service and broadcast programming service over a communications network |
US7376950B2 (en) * | 2002-05-08 | 2008-05-20 | Intel Corporation | Signal aggregation |
US20040006667A1 (en) * | 2002-06-21 | 2004-01-08 | Bik Aart J.C. | Apparatus and method for implementing adjacent, non-unit stride memory access patterns utilizing SIMD instructions |
US7492387B2 (en) | 2002-08-05 | 2009-02-17 | Chih-Lung Yang | Implementation of MPCP MCU technology for the H.264 video standard |
US9646339B2 (en) | 2002-09-16 | 2017-05-09 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US8151304B2 (en) | 2002-09-16 | 2012-04-03 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US8103589B2 (en) | 2002-09-16 | 2012-01-24 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US7822687B2 (en) | 2002-09-16 | 2010-10-26 | Francois Brillon | Jukebox with customizable avatar |
US10373420B2 (en) | 2002-09-16 | 2019-08-06 | Touchtunes Music Corporation | Digital downloading jukebox with enhanced communication features |
US8584175B2 (en) | 2002-09-16 | 2013-11-12 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US12100258B2 (en) | 2002-09-16 | 2024-09-24 | Touchtunes Music Company, Llc | Digital downloading jukebox with enhanced communication features |
US8332895B2 (en) | 2002-09-16 | 2012-12-11 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US11029823B2 (en) | 2002-09-16 | 2021-06-08 | Touchtunes Music Corporation | Jukebox with customizable avatar |
KR100895146B1 (ko) * | 2002-10-19 | 2009-05-04 | 엘지전자 주식회사 | 홈네트워크 제어 방법 |
US7266120B2 (en) | 2002-11-18 | 2007-09-04 | Fortinet, Inc. | System and method for hardware accelerated packet multicast in a virtual routing system |
US7552192B2 (en) * | 2002-12-18 | 2009-06-23 | Ronnie Gerome Carmichael | Massively parallel computer network-utilizing MPACT and multipoint parallel server (MPAS) technologies |
JP4274523B2 (ja) * | 2003-01-24 | 2009-06-10 | 株式会社日立製作所 | 記憶装置システム、及び記憶装置システムの起動方法 |
US7493646B2 (en) | 2003-01-30 | 2009-02-17 | United Video Properties, Inc. | Interactive television systems with digital video recording and adjustable reminders |
US20060051059A1 (en) | 2004-09-08 | 2006-03-09 | Krakirian Haig H | Video recorder having user extended and automatically extended time slots |
US7568034B1 (en) | 2003-07-03 | 2009-07-28 | Google Inc. | System and method for data distribution |
US8136025B1 (en) | 2003-07-03 | 2012-03-13 | Google Inc. | Assigning document identification tags |
JP2005157521A (ja) * | 2003-11-21 | 2005-06-16 | Hitachi Ltd | 遠隔記憶装置の状態情報監視方法および記憶サブシステム |
US7334090B2 (en) * | 2003-12-17 | 2008-02-19 | At&T Delaware Intellectual Property, Inc. | Methods, systems, and storage mediums for providing information storage services |
US7739418B2 (en) * | 2004-04-12 | 2010-06-15 | Hewlett-Packard Development Company, L.P. | Resource management system |
JP4421385B2 (ja) | 2004-06-09 | 2010-02-24 | 株式会社日立製作所 | 計算機システム |
US8086575B2 (en) | 2004-09-23 | 2011-12-27 | Rovi Solutions Corporation | Methods and apparatus for integrating disparate media formats in a networked media system |
US8131969B2 (en) * | 2004-10-20 | 2012-03-06 | Seagate Technology Llc | Updating system configuration information |
US7594075B2 (en) | 2004-10-20 | 2009-09-22 | Seagate Technology Llc | Metadata for a grid based data storage system |
US8131926B2 (en) * | 2004-10-20 | 2012-03-06 | Seagate Technology, Llc | Generic storage container for allocating multiple data formats |
US8346843B2 (en) * | 2004-12-10 | 2013-01-01 | Google Inc. | System and method for scalable data distribution |
US20100071070A1 (en) * | 2005-01-07 | 2010-03-18 | Amandeep Jawa | Managing Sharing of Media Content From a Server Computer to One or More of a Plurality of Client Computers Across the Computer Network |
US20060167982A1 (en) * | 2005-01-07 | 2006-07-27 | Apple Computer, Inc. | Restricted media sharing over networks |
EP1688841A1 (en) * | 2005-02-04 | 2006-08-09 | Sap Ag | Dynamic parallel processing |
US9973817B1 (en) | 2005-04-08 | 2018-05-15 | Rovi Guides, Inc. | System and method for providing a list of video-on-demand programs |
WO2007073420A1 (en) * | 2005-08-24 | 2007-06-28 | Peter Renzi | Streaming video network system |
US20070079342A1 (en) | 2005-09-30 | 2007-04-05 | Guideworks, Llc | Systems and methods for managing local storage of on-demand content |
US7716100B2 (en) * | 2005-12-02 | 2010-05-11 | Kuberre Systems, Inc. | Methods and systems for computing platform |
US9681105B2 (en) | 2005-12-29 | 2017-06-13 | Rovi Guides, Inc. | Interactive media guidance system having multiple devices |
US8607287B2 (en) | 2005-12-29 | 2013-12-10 | United Video Properties, Inc. | Interactive media guidance system having multiple devices |
US7734853B2 (en) * | 2006-02-28 | 2010-06-08 | Arm Limited | Latency dependent data bus transmission |
US8793580B2 (en) * | 2006-06-06 | 2014-07-29 | Channel D Corporation | System and method for displaying and editing digitally sampled audio data |
US8229109B2 (en) * | 2006-06-27 | 2012-07-24 | Intel Corporation | Modular reduction using folding |
US9171419B2 (en) | 2007-01-17 | 2015-10-27 | Touchtunes Music Corporation | Coin operated entertainment system |
US9330529B2 (en) | 2007-01-17 | 2016-05-03 | Touchtunes Music Corporation | Game terminal configured for interaction with jukebox device systems including same, and/or associated methods |
US7934027B2 (en) * | 2007-01-19 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Critical resource management |
US7801888B2 (en) | 2007-03-09 | 2010-09-21 | Microsoft Corporation | Media content search results ranked by popularity |
US9953481B2 (en) | 2007-03-26 | 2018-04-24 | Touchtunes Music Corporation | Jukebox with associated video server |
US20090019492A1 (en) | 2007-07-11 | 2009-01-15 | United Video Properties, Inc. | Systems and methods for mirroring and transcoding media content |
US8689078B2 (en) | 2007-07-13 | 2014-04-01 | Intel Corporation | Determining a message residue |
US8332887B2 (en) | 2008-01-10 | 2012-12-11 | Touchtunes Music Corporation | System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server |
US10290006B2 (en) | 2008-08-15 | 2019-05-14 | Touchtunes Music Corporation | Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations |
US8042025B2 (en) * | 2007-12-18 | 2011-10-18 | Intel Corporation | Determining a message residue |
US7886214B2 (en) * | 2007-12-18 | 2011-02-08 | Intel Corporation | Determining a message residue |
US20090171839A1 (en) * | 2007-12-28 | 2009-07-02 | Rosano Sharon A | Systems and methods for processing recurring payment transactions |
TWI367422B (en) * | 2008-05-13 | 2012-07-01 | Jmicron Technology Corp | Raid5 controller and accessing method with data stream distribution and aggregation operations based on the primitive data access block of storage devices |
US8601526B2 (en) | 2008-06-13 | 2013-12-03 | United Video Properties, Inc. | Systems and methods for displaying media content and media guidance information |
WO2010005569A1 (en) | 2008-07-09 | 2010-01-14 | Touchtunes Music Corporation | Digital downloading jukebox with revenue-enhancing features |
US10063934B2 (en) | 2008-11-25 | 2018-08-28 | Rovi Technologies Corporation | Reducing unicast session duration with restart TV |
US10564804B2 (en) | 2009-03-18 | 2020-02-18 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US12112093B2 (en) | 2009-03-18 | 2024-10-08 | Touchtunes Music Company, Llc | Entertainment server and associated social networking services |
US9292166B2 (en) | 2009-03-18 | 2016-03-22 | Touchtunes Music Corporation | Digital jukebox device with improved karaoke-related user interfaces, and associated methods |
US10719149B2 (en) | 2009-03-18 | 2020-07-21 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
KR101748448B1 (ko) | 2009-03-18 | 2017-06-16 | 터치튠즈 뮤직 코포레이션 | 엔터테인먼트 서버 및 관련 소셜 네트워킹 서비스 |
US9166714B2 (en) | 2009-09-11 | 2015-10-20 | Veveo, Inc. | Method of and system for presenting enriched video viewing analytics |
US9014546B2 (en) | 2009-09-23 | 2015-04-21 | Rovi Guides, Inc. | Systems and methods for automatically detecting users within detection regions of media devices |
CN105354940A (zh) | 2010-01-26 | 2016-02-24 | 踏途音乐公司 | 具有改进的用户界面的数字点播设备和相关方法 |
US8935719B2 (en) | 2011-08-25 | 2015-01-13 | Comcast Cable Communications, Llc | Application triggering |
EP2759126B8 (en) | 2011-09-18 | 2021-03-31 | Touchtunes Music Corporation | Digital jukebox device with karaoke and/or photo booth features, and associated methods |
US8805418B2 (en) | 2011-12-23 | 2014-08-12 | United Video Properties, Inc. | Methods and systems for performing actions based on location-based rules |
US11151224B2 (en) | 2012-01-09 | 2021-10-19 | Touchtunes Music Corporation | Systems and/or methods for monitoring audio inputs to jukebox devices |
US20130191569A1 (en) * | 2012-01-25 | 2013-07-25 | Qualcomm Incorporated | Multi-lane high-speed interfaces for high speed synchronous serial interface (hsi), and related systems and methods |
US8862564B2 (en) | 2012-03-16 | 2014-10-14 | Google Inc. | Sponsoring resource downloads |
JP5855234B2 (ja) * | 2012-03-27 | 2016-02-09 | 三菱電機株式会社 | デジタル放送受信装置及びデジタル放送受信方法 |
US9414114B2 (en) | 2013-03-13 | 2016-08-09 | Comcast Cable Holdings, Llc | Selective interactivity |
KR101507810B1 (ko) * | 2013-06-25 | 2015-04-07 | 삼성전자주식회사 | 의료 영상 장치를 이용하여 피검사자를 촬영하기 위한 사용자 인터페이스를 제공하는 방법 및 장치 |
US9674563B2 (en) | 2013-11-04 | 2017-06-06 | Rovi Guides, Inc. | Systems and methods for recommending content |
US9921717B2 (en) | 2013-11-07 | 2018-03-20 | Touchtunes Music Corporation | Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices |
US11076205B2 (en) | 2014-03-07 | 2021-07-27 | Comcast Cable Communications, Llc | Retrieving supplemental content |
WO2015148644A1 (en) | 2014-03-25 | 2015-10-01 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
RU2550555C1 (ru) * | 2014-07-21 | 2015-05-10 | ООО Научно-исследовательский центр супер-ЭВМ и нейрокомпьютеров | Мультиконтроллер распределяемой памяти |
US9948962B2 (en) | 2014-11-13 | 2018-04-17 | Time Warner Cable Enterprises Llc | Apparatus and methods for efficient delivery of electronic program guide data |
US11829333B2 (en) * | 2015-05-08 | 2023-11-28 | Chicago Mercantile Exchange Inc. | Thread safe lock-free concurrent write operations for use with multi-threaded in-line logging |
US9836528B1 (en) | 2015-07-20 | 2017-12-05 | Google Inc. | Data constrained resource access |
KR101734160B1 (ko) * | 2016-04-28 | 2017-05-11 | 주식회사 디에이아이오 | 작업부하 편중을 완화하는 저장 장치 |
US9941866B2 (en) | 2016-07-12 | 2018-04-10 | Qualcomm Incorporated | Apparatus for design for testability of multiport register arrays |
WO2018089993A1 (en) * | 2016-11-14 | 2018-05-17 | Google Llc | Sorting for data-parallel computing devices |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4057829B1 (en) * | 1973-12-18 | 1995-07-25 | Spectradyne Inc | Communication TV monitoring and control system |
US4344134A (en) * | 1980-06-30 | 1982-08-10 | Burroughs Corporation | Partitionable parallel processor |
US4546451A (en) * | 1982-02-12 | 1985-10-08 | Metheus Corporation | Raster graphics display refresh memory architecture offering rapid access speed |
CA1293819C (en) * | 1986-08-29 | 1991-12-31 | Thinking Machines Corporation | Very large scale computer |
US5175865A (en) * | 1986-10-28 | 1992-12-29 | Thinking Machines Corporation | Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers |
CA1289671C (en) * | 1986-10-28 | 1991-09-24 | Thinking Machines Corporation | Massively parallel processor |
US5276866A (en) * | 1988-07-19 | 1994-01-04 | Michael Paolini | System with two different communication mediums, transmitting retrieved video and compressed audio information to plural receivers responsively to users' requests |
US5148432A (en) * | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
US4947244A (en) * | 1989-05-03 | 1990-08-07 | On Command Video Corporation | Video selection and distribution system |
WO1991003112A1 (en) * | 1989-08-23 | 1991-03-07 | Delta Beta Pty. Ltd. | Program transmission optimisation |
JPH04219859A (ja) * | 1990-03-12 | 1992-08-10 | Hewlett Packard Co <Hp> | 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ |
US5034741A (en) * | 1990-03-22 | 1991-07-23 | United Technologies Corporation | Variable length bit patterns for data representation |
US5341474A (en) * | 1992-05-15 | 1994-08-23 | Bell Communications Research, Inc. | Communications architecture and buffer for distributing information services |
US5276681A (en) * | 1992-06-25 | 1994-01-04 | Starlight Networks | Process for fair and prioritized access to limited output buffers in a multi-port switch |
US5857112A (en) * | 1992-09-09 | 1999-01-05 | Hashemi; Ebrahim | System for achieving enhanced performance and data availability in a unified redundant array of disk drives by using user defined partitioning and level of redundancy |
JPH06290158A (ja) * | 1993-03-31 | 1994-10-18 | Fujitsu Ltd | 再構成可能なトーラス・ネットワーク方式 |
JPH08511368A (ja) * | 1993-06-04 | 1996-11-26 | ネットワーク・アプリアンス・コーポレーション | 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法 |
US5414455A (en) * | 1993-07-07 | 1995-05-09 | Digital Equipment Corporation | Segmented video on demand system |
US5473362A (en) * | 1993-11-30 | 1995-12-05 | Microsoft Corporation | Video on demand system comprising stripped data across plural storable devices with time multiplex scheduling |
US5463732A (en) * | 1994-05-13 | 1995-10-31 | David Sarnoff Research Center, Inc. | Method and apparatus for accessing a distributed data buffer |
US5592470A (en) * | 1994-12-21 | 1997-01-07 | At&T | Broadband wireless system and network architecture providing broadband/narrowband service with optimal static and dynamic bandwidth/channel allocation |
US5706048A (en) * | 1995-04-24 | 1998-01-06 | Motorola, Inc. | Wireless digital data access system and method |
US5862312A (en) * | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
JP3133004B2 (ja) * | 1996-11-21 | 2001-02-05 | 株式会社日立製作所 | ディスクアレイ装置およびその制御方法 |
US6058455A (en) * | 1997-07-02 | 2000-05-02 | International Business Corporation | RAID system having a selectable unattended mode of operation with conditional and hierarchical automatic re-configuration |
US6101615A (en) * | 1998-04-08 | 2000-08-08 | International Business Machines Corporation | Method and apparatus for improving sequential writes to RAID-6 devices |
US6334168B1 (en) * | 1999-02-19 | 2001-12-25 | International Business Machines Corporation | Method and system for updating data in a data storage system |
US6195727B1 (en) * | 1999-03-31 | 2001-02-27 | International Business Machines Corporation | Coalescing raid commands accessing contiguous data in write-through mode |
US6289376B1 (en) * | 1999-03-31 | 2001-09-11 | Diva Systems Corp. | Tightly-coupled disk-to-CPU storage server |
US6233607B1 (en) * | 1999-04-01 | 2001-05-15 | Diva Systems Corp. | Modular storage server architecture with dynamic data management |
-
1994
- 1994-07-19 US US08/275,742 patent/US5671377A/en not_active Expired - Lifetime
-
1995
- 1995-07-17 KR KR1019970700429A patent/KR100374070B1/ko not_active IP Right Cessation
- 1995-07-17 DE DE69534248T patent/DE69534248T2/de not_active Expired - Lifetime
- 1995-07-17 ES ES95926230T patent/ES2240976T3/es not_active Expired - Lifetime
- 1995-07-17 KR KR10-2002-7009857A patent/KR100377092B1/ko not_active IP Right Cessation
- 1995-07-17 EP EP05075507A patent/EP1548606A3/en not_active Withdrawn
- 1995-07-17 WO PCT/US1995/008640 patent/WO1996002931A1/en active IP Right Grant
- 1995-07-17 CA CA002195431A patent/CA2195431C/en not_active Expired - Fee Related
- 1995-07-17 CA CA002499802A patent/CA2499802C/en not_active Expired - Fee Related
- 1995-07-17 JP JP50509296A patent/JP4195725B2/ja not_active Expired - Fee Related
- 1995-07-17 EP EP95926230A patent/EP0771468B1/en not_active Expired - Lifetime
-
1997
- 1997-04-24 US US08/847,590 patent/US5920702A/en not_active Expired - Lifetime
- 1997-04-24 US US08/847,591 patent/US5913026A/en not_active Expired - Lifetime
-
1999
- 1999-05-18 US US09/313,408 patent/US6529994B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1996002931A1 (en) | 1996-02-01 |
US6529994B1 (en) | 2003-03-04 |
US5671377A (en) | 1997-09-23 |
EP0771468B1 (en) | 2005-06-01 |
CA2195431A1 (en) | 1996-02-01 |
US5920702A (en) | 1999-07-06 |
KR970705256A (ko) | 1997-09-06 |
DE69534248D1 (de) | 2005-07-07 |
CA2499802C (en) | 2009-09-29 |
ES2240976T3 (es) | 2005-10-16 |
KR100377092B1 (ko) | 2003-03-19 |
EP0771468A1 (en) | 1997-05-07 |
DE69534248T2 (de) | 2006-05-04 |
EP0771468A4 (en) | 2000-08-23 |
EP1548606A2 (en) | 2005-06-29 |
EP1548606A3 (en) | 2012-02-15 |
CA2195431C (en) | 2005-06-14 |
JPH10503066A (ja) | 1998-03-17 |
JP4195725B2 (ja) | 2008-12-10 |
US5913026A (en) | 1999-06-15 |
CA2499802A1 (en) | 1996-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100374070B1 (ko) | 다중사용자데이터분배시스템에다중사용자를할당하는방법 | |
US5938734A (en) | Real time stream server for handling a plurality of real time stream data with different data rates | |
EP0727750B1 (en) | Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses | |
KR100231220B1 (ko) | 다수의 디스크상에 저장된 스트라이프들로 분할되어 있는 데이타 유닛들중 요청된 데이타 유닛을 검색하는 방법 및 장치(A disk access method for delivering multimedia and video information on ctemand over wide area networks) | |
US5878280A (en) | Data buffering system for plural data memory arrays | |
JP3308814B2 (ja) | ビデオサーバシステムに於いて平均的なシーク時間及びバンド幅を達成するための方法及びシステム | |
US5928327A (en) | System and process for delivering digital data on demand | |
EP0886971B1 (en) | Method and system for supplying data streams | |
WO2000060485A1 (en) | System for optimally accessing array of storage devices and optimally transmitting data to users | |
JPH0926854A (ja) | データを格納し供給するサーバー・システム | |
JPH08340508A (ja) | 作業スケジューリングによるマルチノード・メディア・サーバ | |
JP4381480B2 (ja) | 複数のパリティ・グループを持つ多重ディスク・ドライブ配列 | |
EP1287425A2 (en) | System for and method of accessing blocks on a storage medium | |
US5940865A (en) | Apparatus and method for accessing plural storage devices in predetermined order by slot allocation | |
US6647439B1 (en) | Arrangement with a plurality of processors sharing a collective memory | |
US6738840B1 (en) | Arrangement with a plurality of processors having an interface for a collective memory | |
US6577814B1 (en) | Video data recording and reproduction using time slot allocation | |
JPH0535407A (ja) | 情報ライブラリシステム | |
KR100457481B1 (ko) | 데이타저장방법,데이타저장시스템,정보캐리어,데이타인출방법 | |
JP2002149349A (ja) | 少なくとも1つのデータストリームのデータをストアするためのサーバ、方法、およびコンピュータサーバシステム | |
JP2000243070A (ja) | データ蓄積装置および方法、ならびに、データ送出装置および方法 | |
JPH10283295A (ja) | データ転送システム、及びそのデータ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
A107 | Divisional application of patent | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20090114 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |