ES2240976T3 - Sistema de almacenamiento, recuperacion y distribucion de datos de multiples usuarios, que utiliza un almacenamiento distribuido de datos deun flujo continuo de datos. - Google Patents

Sistema de almacenamiento, recuperacion y distribucion de datos de multiples usuarios, que utiliza un almacenamiento distribuido de datos deun flujo continuo de datos.

Info

Publication number
ES2240976T3
ES2240976T3 ES95926230T ES95926230T ES2240976T3 ES 2240976 T3 ES2240976 T3 ES 2240976T3 ES 95926230 T ES95926230 T ES 95926230T ES 95926230 T ES95926230 T ES 95926230T ES 2240976 T3 ES2240976 T3 ES 2240976T3
Authority
ES
Spain
Prior art keywords
data
users
storage
information
user
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
ES95926230T
Other languages
English (en)
Inventor
Robert L. Bliedt
Danny Chin
James T. C. Kaba
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sedna Patent Services LLC
Original Assignee
Sedna Patent Services LLC
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 Sedna Patent Services LLC filed Critical Sedna Patent Services LLC
Application granted granted Critical
Publication of ES2240976T3 publication Critical patent/ES2240976T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/226Characteristics of the server or Internal components of the server
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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/2312Data placement on disk arrays
    • H04N21/2318Data placement on disk arrays using striping
    • 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/238Interfacing 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/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • H04N21/2396Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat 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/412Distributed 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (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

UN SISTEMA DE ALMACENAMIENTO, RECUPERACION Y DISTRIBUCION DE DATOS DE USUARIO MULTIPLE (100) QUE CONTIENE UN SISTEMA DE ORDENADOR DE PROCESAMIENTO PARALELO QUE FORMA UN SERVIDOR DE INFORMACION DIGITAL (208). EL SERVIDOR CONTIENE UNA PLURALIDAD DE PROCESADORES PARALELOS (216N,218N,220N,222N) CADA UNO CONECTADO A UN DISPOSITIVO DE ALMACENAMIENTO DE INFORMACION (224N,226N,228N). LOS DATOS DE USUARIO SON ALMACENADOS DE FORMA DISTRIBUIDA ENTRE LOS DISPOSITIVOS DE ALMACENAJE (224N,226N,228N). EL SISTEMA DE DISTRIBUCION (100) ASIGNA DINAMICAMENTE LOS USUARIOS AL SISTEMA BASADO EN EL MODO DE OPERACION SOLICITADO POR EL USUARIO. DURANTE LOS PERIODOS DE SERVICIO DE USUARIO SUCESIVOS, TODOS LOS USUARIOS LE SON SUMINISTRADOS SUS DATOS SOLICITADOS. EL SISTEMA TAMBIEN SUMINISTRA DETECCION Y CORRECCION DE ERRORES PARA LOS DATOS SOLICITADOS POR LOS USUARIOS. DATOS ADICIONALES PUEDEN SER AÑADIDOS A LOS DISPOSITIVOS DE ALMACENAMIENTO DE INFORMACION (224N,226N,228N) DURANTE CADA PERIODO DE SERVICIO, Y DISPOSITIVOS DE ALMACENAMIENTO DE INFORMACION SELECTIVOS PUEDEN SER RECALIBRADOS SIN AFECTAR LA OPERACION DEL SISTEMA. LOS DATOS SON RECUPERADOS DE LOS DISPOSITIVOS DE ALMACENAMIENTO DE INFORMACION EN UN ORDEN ARBITRARIO. EL SISTEMA CONTIENE UN SECUENCIADOR DE SALIDA (FIG.11) PARA GENERAR DATOS DE SALIDA EN UN ORDEN PREDEFINIDO. EL APARATO Y EL METODO REVELADOS ENCUENTRAN APLICABILIDAD EN SERVIDORES DE VIDEO, FORMACION DE IMAGENES MEDICAS, EFECTOS ESPECIALES Y ANIMACION, Y SISTEMAS DE REPRESENTACION BASADOS EN LA LOCALIZACION ENTRE OTRAS APLICACIONES.

Description

Sistema de almacenamiento, recuperación y distribución de datos de múltiples usuarios, que utiliza un almacenamiento distribuido de datos de un flujo continuo de datos.
La presente invención se refiere a un sistema para almacenar y acceder a datos electrónicos y, más particularmente, a un sistema de almacenamiento, recuperación y distribución de datos para permitir a múltiples usuarios acceder de forma independiente a secuencias de datos electrónicos almacenadas previamente.
En los sistemas de almacenamiento y recuperación de datos electrónicos tradicionales, es habitual almacenar datos en un banco o conjunto de elementos de memoria controlados por una unidad central de procesamiento (CPU). Dichos sistemas de almacenamiento de datos constituyen la base de la mayor parte de los sistemas informáticos contemporáneos. Habitualmente, los elementos de memoria son una combinación de memoria semiconductora, tal como la memoria dinámica de acceso aleatorio (DRAM) o la memoria estática de acceso aleatorio (SRAM), y memoria magnética de disco rotativo (memoria de unidad de disco), tal como la unidad de disco duro "Winchester". La memoria semiconductora se utiliza para el almacenamiento de datos que requieren un acceso inmediato por la CPU, mientras que la memoria de unidad de disco se utiliza comúnmente para almacenar datos a los que la CPU accede con menor frecuencia.
El coste asociado a la utilización de memoria semiconductora para almacenar una cantidad de datos dada suele ser de uno o dos órdenes de magnitud superior al asociado a la utilización de memoria de unidad de disco para almacenar la misma cantidad de datos. No obstante, la memoria semiconductora ofrece una latencia de datos (tiempo transcurrido entre el momento en que la CPU solicita los datos de la memoria y el momento en que los datos solicitados están disponibles para la CPU) que suele ser de tres a cuatro órdenes de magnitud inferior a la latencia de datos asociada a la memoria de unidad de disco. Por consiguiente, en las aplicaciones en que la latencia de datos es crucial, el coste de la memoria semiconductora queda plenamente justificado.
Por otra parte, el acceso a los datos de la memoria de unidad de disco habitualmente debe llevarse a cabo en "series de bloques". Así pues, el acceso aleatorio a cualquier bit de datos almacenado en la unidad no suele ser posible. Asimismo, por su naturaleza de dispositivo mecánico, las memorias de unidad de disco experimentan fallos mecánicos y, como tales, presentan una fiabilidad inferior a la de la memoria semiconductora.
En los sistemas informáticos o de recuperación de datos en los que múltiples usuarios pueden acceder de forma simultánea a los datos almacenados en el sistema, se utilizan diversos medios para procesar en serie las peticiones de datos de cada usuario. Por lo general, el sistema debe simular que cada uno de los usuarios tiene acceso independiente a los datos. Comúnmente, dicha simulación se consigue a través de algoritmos multitarea apropiativos o de turno rotativo. La CPU de un sistema ejecuta estos algoritmos que suelen estar integrados en el sistema operativo del sistema informático o de recuperación de datos. De esta forma, la CPU transfiere en serie el control de la memoria de almacenamiento de datos del sistema a cada usuario, mediante un sistema de turnos rotativos.
Para incrementar el rendimiento aparente de un sistema de almacenamiento en disco, muchos sistemas informáticos emplean unidades de disco interconectadas que actúan como un único disco. Un bloque de datos se distribuye entre N discos de tal forma que cada disco almacena 1/N del bloque en un emplazamiento similar. El acceso a los discos se efectúa en paralelo, de tal forma que, tras la latencia inicial, los datos de cada disco se leen de forma simultánea para reducir el tiempo necesario de lectura del bloque. Este incremento de rendimiento permite al sistema de almacenamiento servir a muchos usuarios adicionales cuando se emplea un algoritmo multitarea. No obstante, el funcionamiento de usuarios múltiples multiplica la latencia efectiva. Por ejemplo, si se presta servicio a M usuarios, la petición por parte de un usuario de datos de una secuencia de datos diferente deberá ponerse en la cola hasta que se hayan procesado M-1 usuarios. Como término medio, la latencia se incrementará en un factor de M/2.
Para incrementar el número de usuarios con una latencia efectiva dada, un sistema de almacenamiento puede emplear varias CPU dispuestas en una arquitectura de procesamiento paralelo. Puesto que en dichos sistemas de almacenamiento de datos cada procesador utiliza una sola instrucción para trabajar con una secuencia de datos que es diferente para cada procesador, habitualmente se utiliza una arquitectura informática de múltiples datos. En una arquitectura de múltiples datos, cada CPU está conectada a una memoria de unidad de disco. Cada CPU accede a su memoria de unidad de disco asociada cuando recibe la orden desde un ordenador principal. Por consiguiente, los procesadores pueden acceder de forma simultánea a todas las unidades de disco en paralelo para mejorar el rendimiento. Así pues, cada usuario recibe un bloque de datos de la unidad de disco a través de una CPU dada.
Para asegurar la transferencia continua de datos desde el sistema hasta los usuarios, se utiliza una memoria semiconductora de capacidad relativamente alta para almacenar en memoria tampón las secuencias de datos de salida paralelas de la pluralidad de CPU. Dicho almacenamiento en memoria tampón es especialmente necesario cuando los datos son datos de vídeo o de audio que no permiten una interrupción durante la transferencia a los usuarios para la observación. En dichos sistemas, los datos de vídeo y audio se transfieren desde las unidades de disco hasta la memoria tampón como bloques de datos diferenciados. Los bloques se distribuyen en serie en la memoria tampón, de tal forma que, una vez leída la memoria tampón, los bloques forman una secuencia de datos contigua para cada usuario.
No obstante, en dicho sistema de almacenamiento de información, la memoria tampón debe ser muy grande y, por lo tanto, muy costosa. Por ejemplo, en un sistema de acceso por turnos rotativos con M usuarios, la memoria tampón debe almacenar temporalmente los datos de un usuario dado, mientras el ordenador de procesamiento paralelo presta servicio a los M-1 usuarios restantes. En un sistema de almacenamiento de vídeo habitual, en el que se leen bloques de datos de 10 a 100 kbyte de 100 a 1000 unidades de disco para 1000 usuarios, la memoria tampón debe ser de 1 a 100 Gbyte. Dicha disposición de memoria semiconductora de gran capacidad tiene un coste sumamente elevado.
Otra de las desventajas asociadas a la utilización de unidades de disco como medios de almacenamiento es el hecho de que las unidades de disco no son capaces de llevar a cabo operaciones de lectura o escritura continuas e ininterrumpidas. Habitualmente, los mandatos externos que solicitan acceso a los datos se ignoran o posponen cuando la unidad lleva a cabo operaciones internas de gestión administrativa o mantenimiento. El retardo más prolongado se introduce como consecuencia del recalibrado de la posición del cabezal por la unidad. Dicho recalibrado se lleva a cabo de forma periódica para corregir los errores de pista que se producen debido a la expansión térmica diferencial de los discos dentro de la unidad. Las unidades de disco de bajo coste comunes necesitan de 0,1 a 1,0 segundos para realizar el procedimiento de recalibrado, que se suele llevar a cabo cada 10-100 minutos de funcionamiento
Para impedir la interrupción de las secuencias de datos de salida, el sistema de distribución de datos (DDS) debe proporcionar memoria tampón adicional para almacenar los datos que se van a utilizar como salida durante cada ciclo de recalibrado de la unidad de disco. En un sistema habitual en el que los datos se transfieren a los usuarios a una velocidad de 1 a 10 Mbit/s para cada usuario, la memoria tampón debe tener una capacidad de 0,1 a 10 Mbit. Para un sistema que tiene 1000 usuarios, se necesita una memoria semiconductora de 10 Gbit o 1,25 Gbyte.
En el documento "Starworks - A Video Application Server" de Fouad A. Tobagi y Joseph Pang, Compcon Spring '93, IEEE Computer Soc, se da a conocer un procedimiento para almacenar datos en un sistema de distribución de datos de múltiples usuarios. Una secuencia de vídeo representa, por ejemplo, una película. La secuencia comprende paquetes de vídeo que se transmiten a una memoria compartida donde se almacenan. Un algoritmo de repartición divide una única memoria compartida en fragmentos de tamaño fijo y permite la asignación/liberación de los fragmentos de memoria por múltiples conductos, en función de la demanda. Se utiliza un sistema de planificación cíclica para controlar el almacenamiento y la recuperación de datos. Se emplean las técnicas de creación de bandas y de clasificación. La creación de bandas conlleva distribuir, entre todos los discos del conjunto de discos, los datos que se recuperan para cada secuencia en un ciclo dado. Con esto se consigue equilibrar la carga de todos los discos.
En el ámbito de la técnica, se plantea la necesidad de disponer de un DDS de múltiples usuarios que reduzca de forma significativa la capacidad necesaria de memoria tampón y que presente un período de latencia de acceso a los datos que resulte imperceptible para cada usuario.
La presente invención proporciona un procedimiento para almacenar datos en un sistema de distribución de datos de múltiples usuarios que presenta una pluralidad de dispositivos de almacenamiento de información, comprendiendo el procedimiento las etapas siguientes:
a)
provisión de una secuencia continua de datos que se subdivide en segmentos discretos;
b)
división de dicha pluralidad de dispositivos de almacenamiento de información en una pluralidad de subgrupos de dispositivos de almacenamiento de información, comprendiendo cada subgrupo por lo menos dos dispositivos de almacenamiento de información;
c)
selección de un primer grupo de segmentos discretos consecutivos de dicha secuencia de datos para su almacenamiento en uno de dichos subgrupos de dispositivos de almacenamiento de información;
d)
almacenamiento en forma de bandas de dicho primer grupo seleccionado de segmentos discretos de datos, en un primero de dichos subgrupos de dispositivos de almacenamiento de información y
e)
repetición de dicha etapa de selección de segmentos discretos para un siguiente grupo de segmentos discretos consecutivos dispuesto a continuación del grupo de segmentos discretos de dicha secuencia de datos seleccionado previamente, y repetición de dicha etapa de almacenamiento para dicho grupo de segmentos siguiente que se va a almacenar en forma de bandas en un siguiente subgrupo de dispositivos de almacenamiento de información, siendo dicho subgrupo siguiente diferente del subgrupo utilizado en la etapa de almacenamiento precedente,
e1)
de tal forma que los segmentos discretos almacenados forman, a través de todos los subgrupos de dispositivos de almacenamiento de información, una pluralidad de bloques contiguos de datos almacenados de un tamaño predeterminado, estando asociado cada bloque a un subgrupo individual de dichos subgrupos de dispositivos de almacenamiento de información y correspondiendo a una parte de la capacidad de almacenamiento de su subgrupo asociado y
e2)
de tal forma que dichos segmentos discretos que forman cada uno de dichos bloques de datos presentan un diseño en bandas en cada bloque y a través de dicha pluralidad de subgrupos de dispositivos de almacenamiento de información.
En las realizaciones de la presente invención, se utiliza un nuevo DDS de múltiples usuarios que contiene un servidor de información digital que es un ordenador de procesamiento paralelo que presenta una pluralidad de procesadores paralelos, cada uno de los cuales está conectado a un dispositivo de almacenamiento de información, tal como una unidad de disco magnético, una unidad de disco óptico, una memoria de acceso aleatorio o un dispositivo similar. El sistema utiliza un procedimiento de creación de bandas de datos desconocido hasta ahora para almacenar información en la pluralidad de unidades de disco. Este procedimiento de creación de bandas de datos divide de forma uniforme la pluralidad de unidades de disco en una pluralidad de subgrupos de unidades de disco. Por ejemplo, si el servidor contiene 500 unidades de disco y el subgrupo es de 5 unidades, entonces se formarán 100 subgrupos de unidades. Se selecciona un primer subgrupo, y se almacena un bloque contiguo de datos según un sistema repetitivo de bandas a través del subgrupo de unidades de disco. A continuación, se selecciona un segundo subgrupo, adyacente al primer subgrupo, y se almacena otro bloque contiguo de datos en el mismo según el sistema de bandas. Este procedimiento se repite para cada uno de los subgrupos. Una vez que todos los subgrupos se han utilizado para almacenar datos, el procedimiento vuelve al primer subgrupo y almacena en éste el siguiente bloque contiguo de datos. Mediante este procedimiento, pueden almacenarse muchas fuentes de datos en las unidades de disco para un posterior acceso por múltiples usuarios. Para utilizar con eficacia todos los procesadores, los datos de entrada se disponen previamente en un orden específico que permite almacenar cada uno de los bloques contiguos de datos de forma simultánea en los subgrupos de unidades de disco.
Otra característica de las realizaciones de la presente invención es un procedimiento de recuperación de datos que utiliza los datos almacenados de la forma descrita anteriormente para mejorar la latencia respecto de los DDS de técnica anterior y reducir el tamaño necesario de la memoria tampón de datos. El procedimiento define un período de servicio que comprende una pluralidad de intervalos de tiempo a los que se asignan usuarios. Dentro de un intervalo de tiempo dado, el usuario asignado accede a uno de los subgrupos de unidades de disco para obtener datos. Mediante el procedimiento de acceso de datos inventivo, los usuarios son asignados dinámicamente a los intervalos de tiempo de un período de servicio, de tal forma que el tiempo concreto durante el cual se presta servicio al usuario y el subgrupo que presta el servicio al usuario varía de un período de servicio a otro. No obstante, durante cada período de servicio, se sirve siempre a todos y cada uno de los usuarios. La asignación del usuario dentro de un período de servicio es definida por la modalidad actual y la modalidad siguiente (la modalidad que utilizará en el siguiente período de servicio) de funcionamiento del usuario. Además, el procedimiento proporciona detección y corrección de errores para los datos recuperados desde las unidades de disco. El procedimiento permite también añadir nuevos datos a las unidades de disco durante cada período de servicio y permite recalibrar una cantidad seleccionada de unidades de disco, sin incidir en el funcionamiento del sistema.
Debido a la asignación dinámica de los usuarios, los datos serán generados normalmente por el servidor en el orden en que fueron asignados los usuarios durante cada período de servicio. Por lo tanto, el orden de salida de los datos variará de un período de servicio a otro. Por consiguiente, cualquier sistema de suministro de datos conectado al DDS deberá determinar el orden actual de los datos generados por el DDS para encaminar correctamente los datos hacia el usuario adecuado. Para liberar al sistema de suministro de datos de esta carga, el DDS contiene un secuenciador de tiempos de salida que cambia el orden de los datos del servidor por otro orden que se repite para todos y cada uno de los períodos de servicio, independientemente del orden de reasignación de los usuarios dentro del período de servicio.
A continuación, se proporciona una breve descripción de las Figuras.
La Figura 1 ilustra un diagrama de bloques de alto nivel de un sistema de distribución y de suministro de datos de múltiples usuarios.
La Figura 2 ilustra un diagrama de bloques de alto nivel de un DDS de múltiples usuarios.
La Figura 3 ilustra un diagrama de bloques detallado de una parte del DDS representado en la Figura 2.
La Figura 4 es un mapa de almacenamiento de datos que ilustra un procedimiento para almacenar datos en un conjunto de unidades de disco del DDS de la Figura 2.
La Figura 5 es un mapa de acceso a los datos que ilustra un procedimiento preferido para recuperar los datos almacenados en el conjunto de unidades de disco mediante el mapa de almacenamiento ilustrado en la Figura 4.
La Figura 6 ilustra un diagrama de flujo de la rutina RECUPERACIÓN DE DATOS ejecutada por el DDS representado en la Figura 2.
La Figura 7 ilustra un diagrama de flujo de la rutina SERVICIO AL USUARIO ejecutada por el DDS representado en la Figura 2.
La Figura 8 ilustra un diagrama de flujo de la rutina REASIGNACIÓN DE USUARIOS ejecutada por el DDS representado en la Figura 2.
La Figura 9 ilustra un diagrama de flujo de la rutina REASIGNACIÓN DE PRIORIDAD 1 ejecutada por el DDS representado en la Figura 2.
La Figura 10 ilustra un diagrama de flujo de la rutina REASIGNACIÓN DE PRIORIDAD 2, 3 Y 4 ejecutada por el DDS representado en la Figura 2.
La Figura 11 ilustra un diagrama de bloques de un secuenciador de tiempos de salida.
Para facilitar la comprensión de la presente invención, se utilizan números de referencia idénticos, en lo posible, para designar elementos comunes idénticos de las Figuras.
La Figura 1 ilustra un diagrama de bloques de alto nivel de un sistema de distribución y suministro de datos de múltiples usuarios 100. El sistema global contiene dos elementos diferenciados: un centro de distribución 102 que presenta un sistema de almacenamiento, recuperación y distribución de datos 106, y un sistema de suministro de datos 104 que presenta una disposición de red radial. Por lo general, el sistema de suministro 104 contiene una pluralidad de usuarios 108 conectados a unidades de interfaz de red 110 que forman centros de distribución de datos convencionales. Puede utilizarse una unidad de interfaz del sistema de suministro (no representada) para formatear los datos del sistema de distribución de una forma que sea compatible con el sistema de suministro. El enlace de datos del DDS (o la unidad de interfaz del sistema de suministro) con las unidades de interfaz de la red suele ser un enlace de datos multiplexados de alta velocidad, tal como un enlace de estándar T1. Los centros de distribución demultiplexan los datos de estos enlaces, y los usuarios reciben las secuencias de datos en serie que habían solicitado previamente al DDS 106. Además, los usuarios 108 controlan, por medio de enlaces de mandatos, el flujo de datos y el tipo de datos que reciben cada uno. El DDS del centro de distribución procesa los mandatos recibidos desde una pluralidad de usuarios. El DDS interpreta e implementa los mandatos. El sistema de suministro de datos podría ser creado y utilizado por el sistema telefónico local, la empresa de cable local o algún otro organismo proveedor de servicios. Por otra parte, el sistema de suministro de datos podría formar una disposición de bus, como en una red de área local de tipo Ethernet o un alimentador de distribución de televisión por cable. En los casos en que los usuarios están cerca del centro de distribución, el sistema de suministro de datos puede ser sustituido por conexiones directas con el sistema de almacenamiento, recuperación y distribución de datos. El sistema de suministro de datos no forma parte de la presente invención, siendo descrito de forma general sólo a título ilustrativo de la utilización de la presente invención.
Basta con decir que el DDS 106 inventivo envía datos al sistema de suministro 104 en un formato de datos compatible, para facilitar la distribución de datos a los usuarios adecuados. Un ejemplo ilustrativo de utilización para el DDS 106 inventivo es el de un sistema de vídeo bajo demanda (VOD). Aunque en el sentido más amplio el DDS inventivo puede distribuir cualquier tipo de datos digitales (por ejemplo, información de audio, vídeo, texto, gráficos y otros tipos de información similares), por motivos de simplificación, la descripción siguiente de la presente invención se centrará en la utilización de la presente invención dentro de un sistema VOD que presenta un gran número de usuarios.
En un sistema VOD, los usuarios disponen de unidades de interfaz que les permiten seleccionar un programa de vídeo, tal como una película u otro programa multimedios, y controlar la reproducción de dicho programa utilizando funciones de control como las de un reproductor de cintas de vídeo. En concreto, el usuario puede reproducir, pausar, parar, hacer avanzar rápidamente o muy rápidamente y hacer retroceder o retroceder rápidamente el programa en cualquier momento. El DDS procesa e implementa con rapidez cada mandato de usuario. Un hecho importante es que cada usuario del sistema puede utilizar de forma simultánea las mismas funciones de control con cualquier número de programas. Por lo tanto, cada usuario percibe su unidad de sobremesa como un reproductor de cintas de vídeo capaz de acceder a una gran base de datos de programación de vídeo.
El DDS 106 contiene ciertos aparatos y procedimientos concomitantes para implementar los mandatos de usuario con un retardo imperceptible. Habitualmente, una vez que se ha implementado el mandato, los datos solicitados son transmitidos por el centro de distribución a una de las redes de usuario de una pluralidad, en un formato multiplexado. Las unidades de interfaz de la red, incluidas en el sistema de suministro de datos, demultiplexan las secuencias de datos y envían los datos al usuario adecuado. Los datos pueden ser enviados en formato digital o, en algunos casos, pueden ser convertidos en una señal analógica que será utilizada por el usuario. El sistema de suministro de datos radial sólo constituye una ilustración de un tipo de disposición de red. Los expertos en la materia sobrentenderán que es posible utilizar cualquiera de los numerosos sistemas de distribución de datos disponibles para transferir los datos multiplexados desde el DDS a los usuarios.
En la Figura 2, se ilustra un diagrama de bloques del DDS 106 de múltiples usuarios representado en la Figura 1, que incluye un dispositivo de almacenamiento masivo 202, un ordenador principal 204, una interfaz de mandatos 206, un servidor de información digital 208 y un circuito de multiplexación de datos 210. En general, se envía información multiplexada en serie a una pluralidad de usuarios (no representada) por medio de líneas 212. Cada línea representa un canal multiplexado que está conectado a la pluralidad de usuarios por medio de las redes de usuarios.
Los usuarios controlan el funcionamiento del DDS 106 por medio de un enlace de mandatos. Se supone que el enlace de mandatos está integrado en las líneas 212. La implementación concreta del enlace de mandatos suele ser definida por el sistema de suministro de datos. Cada mandato del enlace de mandatos es interpretado por la interfaz 206. La interfaz 206 cambia el formato de los mandatos del sistema de suministro de datos por un formato de mandato que puede ser entendido por el ordenador principal. Mediante el enlace de mandatos, el usuario tiene capacidad para seleccionar un programa de vídeo (por ejemplo, un programa multimedios seleccionado) y, a continuación, iniciar, pausar, hacer retroceder y hacer avanzar rápidamente el programa de vídeo. Dicho de otra forma, el sistema VOD proporciona a cada usuario funciones que son similares a las disponibles en un reproductor de cintas de vídeo convencional.
En funcionamiento, cuando un usuario solicita información (por ejemplo, una secuencia multimedios seleccionada), el ordenador principal recupera la información desde el dispositivo de almacenamiento 202 (por ejemplo, una biblioteca de cintas de vídeo) y distribuye la información recuperada al servidor 208. El servidor contiene memoria local (un conjunto de unidades de disco) en la que se almacena la información. Si la información solicitada por el usuario está actualmente almacenada en el servidor, no es necesario acceder al dispositivo de almacenamiento masivo 202.
De forma más concreta, el servidor 208 es un ordenador de procesamiento paralelo que presenta una arquitectura de múltiples secuencias de datos (SIMD). En particular, el servidor 208 contiene una pluralidad de controladores 216_{n} y, asociada con cada controlador, una pluralidad de subsistemas de procesador 218_{n}, 220_{n} y 222_{n}. Cada subsistema de procesador está conectado a un dispositivo de almacenamiento masivo asociado, tal como una unidad de disco tipo Winchester 224_{n}, 226_{n} y 228_{n}, aunque es posible utilizar otras formas de almacenamiento masivo (por ejemplo, unidades de disco óptico o memorias de acceso aleatorio) en lugar de las unidades de disco magnético.
El dispositivo de almacenamiento 202 puede comprender una pluralidad de unidades de disco magnético u óptico, una memoria semiconductora o una combinación de los mismos. Sin embargo, el dispositivo suele consistir en una o varias unidades de disco magnético. Los datos del dispositivo 202 se distribuyen entre las unidades de disco del servidor 208 por medio de un circuito de formateo de datos 203 y circuitos de entrada/salida (E/S) 214. El circuito 203 lleva a cabo dos funciones. La primera función consiste en almacenar en memoria tampón los datos de entrada del dispositivo 202, pudiéndose reordenar y almacenar en las unidades de disco diversos segmentos de los datos de entrada. Esta primera función se describe en detalle con respecto a la Figura 4. La segunda función realizada por el circuito 203 consiste en reformatear y almacenar en memoria tampón los datos digitalizados de entrada, tales como las emisiones "fuera de aire" o en directo, pudiéndose almacenar estas emisiones en el servidor 208. Así pues, una vez almacenados, los datos pueden ser presentados ante los usuarios en cualquier momento posterior.
Los circuitos E/S combinan los datos de salida paralelos de los subsistemas de procesador como un tren de bits en serie de 64 bits de anchura (descrito en mayor detalle más adelante). En la presente exposición, se describe a título ilustrativo cómo procesa el sistema trenes de bits en serie de 64 bits de anchura, aunque debe sobrentenderse que los trenes de bits de otras anchuras (por ejemplo, trenes de bits en serie de 128 bits de anchura) también quedan incluidos dentro del alcance de la presente invención. Asimismo, los circuitos E/S contienen circuitos de comunicaciones entre procesadores que facilitan la asignación dinámica de los usuarios a los procesadores, así como la detección y la corrección de errores en datos. Los detalles concretos de los circuitos E/S se proporcionan más adelante, en relación con las Figuras 3 y 11.
Por último, el tren de datos en serie de 64 bits de anchura de salida de los circuitos E/S 214 se transfiere al circuito 210. A continuación, el circuito 210 reformatea los datos en serie mediante multiplexación, siendo de ese modo posible conectar un gran número de usuarios (por ejemplo, 3000 usuarios) a las diversas puertas 212 del circuito de multiplexación. Dicho de otro modo, el circuito de multiplexación redistribuye el tren de datos en serie de salida en una pluralidad de canales multiplexados (cada canal es representado por una puerta). A cada usuario asociado a un canal dado se le asigna un intervalo de tiempo específico en el que los datos del usuario se transmiten a través del sistema de suministro de datos.
En una implementación práctica e ilustrativa del DDS inventivo, existen 128 subsistemas de procesador (por ejemplo, los subsistemas de procesador 118_{1} a 118_{128}) conectados a cada controlador (por ejemplo, el controlador 116_{1}). Físicamente, un controlador y sus 128 subsistemas de procesador están instalados en una sola tarjeta de circuito. Cada tarjeta contiene 32 circuitos integrados de subsistema de procesador, cada uno de los cuales incluye cuatro procesadores. Puesto que el servidor contiene cuatro tarjetas de circuito en total; el servidor contendrá 512 procesadores en total. Cada uno de los cuatro procesadores está asociado a diversos circuitos de soporte (por ejemplo, circuitos de memoria, de lógica de instrucción, de E/S y similares) para proporcionar cuatro subsistemas de procesador para cada circuito integrado. Las tarjetas de circuito están conectadas entre sí por medio del ordenador 204. El ordenador 204 por lo general sirve de interfaz entre los subsistemas de procesador y los usuarios. Además, el ordenador principal funciona como controlador principal en la supervisión y el control del funcionamiento de los diversos controladores y subsistemas de procesador del servidor 208. Los expertos en la materia sobrentenderán que el número de procesadores utilizados es específico de cada aplicación y que el número de procesadores de un ordenador de procesamiento paralelo se puede aumentar o disminuir fácilmente para ejecutar una aplicación específica para el ordenador. Por consiguiente, debe sobrentenderse que la presente invención dada a conocer aquí puede utilizarse en un servidor que dispone de una cantidad cualquiera de procesadores que están dispuestos de una forma cualquiera dentro del
servidor.
Más particularmente, la Figura 3 es un diagrama de bloques detallado de una parte del servidor 208 representado en la Figura 2. La Figura 3 ilustra los detalles de un subsistema de procesador 218_{2} y una parte de los circuitos E/S 214, así como la unidad de disco 224_{2} y el controlador 261_{1}. Como se ha descrito anteriormente, cada subsistema de procesador contiene un procesador 300 además de una memoria local 302 y diversos circuitos de soporte de procesador de tipo muy conocido 304. Asimismo, cada subsistema de procesador tiene asociados unos circuitos E/S 214. De conformidad con las instrucciones llevadas a cabo en el bus de instrucciones 308, el procesador efectúa operaciones aritméticas o lógicas con los datos almacenados en sus registros internos 306 o en otro tipo de memoria semiconductora de acceso aleatorio 302.
Más particularmente, el procesador 300 recibe datos de entrada por medio del bus de entrada 310. Los datos se almacenan temporalmente en un registro de entrada 312 hasta que son utilizados por el procesador. Los registros de entrada funcionan como registros de desplazamiento convencionales de tal forma que, en cada ciclo de reloj, el sistema transfiere en serie una palabra de datos (16 bits) desde un subsistema de procesador al siguiente. Una vez que los datos de entrada adecuados para cada subsistema de procesador se han introducido sincronizadamente en los registros de entrada, los datos se cargan de forma simultánea en los registros internos 306 de todos los procesadores. La función de carga del procesador es facilitada por una instrucción particular del procesador enviada, por medio del bus 308, desde el controlador 216_{1}.
Los circuitos E/S también contienen uno o varios registros de salida 314, un registro de entrada 312, una parte del bus de comunicaciones entre procesadores (IPC) 318 y una interfaz de unidad de disco 301. Los registros 314 son registros de 16 bits de ancho conectados a una puerta de salida del procesador (es decir, cada registro acepta 16 bits de datos paralelos y proporciona 16 bits de datos paralelos). Los registros de salida forman parte de un secuenciador de tiempos de salida (OTS) que se describe por completo con respecto a la Figura 11. Basta con decir que el OTS combina los datos de salida de 16 bits de cada procesador con los datos de salida de otros cuatro procesadores para proporcionar un elemento de datos de 64 bits de ancho. El OTS se utiliza por un motivo que se pondrá claramente de manifiesto a través de la descripción del resto del sistema.
Cada procesador puede comunicarse con los procesadores vecinos por medio del bus de comunicaciones entre procesadores (IPC) 318. El bus IPC 318 consiste en una disposición de circuito que permite transferir los datos y otro tipo de información de un procesador a otro. Las IPC son bidireccionales en la medida en que la información puede pasar a través del bus en ambas direcciones. La implementación concreta del bus IPC no es relevante para la presente invención, siendo adecuado cualquier bus que permita a los procesadores compartir información. Uno de dichos buses IPC es el dado a conocer en la solicitud de patente de Estados Unidos titulada "Advanced Massively-Parallel Computer Apparatus", que tiene asignado el número de serie 08/091.935 y fue presentada el 4 de julio de 1993 (publicaciones relacionadas US-A-5 579 527, US-A-5 581 778 y US-A-5 867 723) que es una continuación en parte de la solicitud de patente número de serie 07/926.265, presentada el 5 de agosto de 1992.
La interfaz de unidad de disco 301 conecta el subsistema de unidad de disco 224_{2} con los circuitos E/S 214. La interfaz de unidad de disco 301 lleva a cabo una conversión serie-paralelo de la información, desde el disco hasta el procesador y viceversa.
Cada subsistema de procesador 218_{2} está conectado indirectamente (a través del chip E/S y una interfaz de unidad de disco) a un subsistema de unidad de disco 224_{2} que contiene un controlador de disco 320 y una unidad de disco 322. El controlador de disco 320 ejecuta mandatos del procesador 300 para transferir datos desde la unidad de disco 322 hasta el procesador. Puesto que los procesadores y las unidades de disco pueden estar separados físicamente unos de otros, la conexión eléctrica entre cada uno de los controladores y los procesadores asociados se suele implementar mediante un bus de datos de bits en serie bidireccional.
Cada procesador recibe instrucciones idénticas desde el secuenciador de instrucciones 324 del controlador 216_{1}. El secuenciador de instrucciones almacena una secuencia de instrucciones que constituye el programa que va a ser ejecutado por cada procesador. Esta secuencia de instrucciones es introducida previamente en el secuenciador por el ordenador principal. El procedimiento particular por medio del cual se carga y ejecuta el programa es muy conocido en el ámbito de la técnica y no es necesario describirlo aquí.
En funcionamiento, una vez que la información se ha recuperado como una secuencia de palabras en serie desde la memoria masiva, el ordenador principal ordena a los controladores que almacenen la información en los subsistemas de unidad de disco según un procedimiento conocido en general en el ámbito de la técnica como procedimiento de "creación de bandas de datos". En concreto, la información se almacena, como una palabra de 16 bits cada vez, entre una pluralidad de unidades de disco según una configuración de bandas. Por ejemplo, como se ilustra en el mapa de almacenamiento 402 de la Figura 4, la secuencia de palabras 400 se divide en bandas de datos a lo largo de 505 unidades de disco, dando por resultado una latencia de acceso baja. En la descripción siguiente de la técnica de creación de bandas de datos preferida, se presupone que existen cuatro grupos de 128 procesadores paralelos (es decir, 512 en total, de los cuales 505 se utilizan para el almacenamiento de datos de vídeo) asociados a 512 unidades de disco. Las unidades de disco se numeran en secuencia del 1 al 512. Para almacenar los datos, las 505 unidades de disco se dividen equitativamente en subgrupos de unidades de disco (por ejemplo, cinco unidades de disco por subgrupo). Una parte del programa de vídeo se almacena, en forma de bandas, dentro de cada subgrupo. En consecuencia, la unidad de disco 1 almacena la primera palabra (palabra 1) de los datos de entrada 400, la unidad 2 almacena la palabra 2, la unidad 3 almacena la palabra 3, la unidad 4 almacena la palabra 4 y la unidad 5 almacena la palabra 5. A continuación, la palabra 6 se almacena en la unidad 1, la palabra 7 en la unidad 2 y así sucesivamente hasta que se almacena la palabra 80.000 de la información en la unidad 5, es decir, las bandas de datos de las unidades 1 a 5 se repiten 16.000 veces. A continuación, la siguiente palabra (palabra 80.001) se almacena en la unidad 6 y así sucesivamente hasta que toda la información se almacene a través de todas las unidades de disco. Cuando las unidades de disco 501 a 505 tienen almacenadas, respectivamente, las 80.000 palabras de datos, el sistema vuelve (pasa automáticamente, como se ilustra mediante la línea 402) a las unidades de disco 1 a 5 para almacenar las 80.000 palabras siguientes. Este procedimiento de formación de bandas de datos dentro de cada subgrupo de unidades, y también a través de todos los subgrupos, se repite hasta que se ha almacenado todo el programa de vídeo.
En la anterior descripción de la creación de bandas, se presupone, por motivos de simplificación, que los datos se almacenan en un subgrupo de unidades de disco cada vez. No obstante, para utilizar con eficacia el ordenador de procesamiento paralelo, los datos de entrada se almacenan simultáneamente utilizando todos los procesadores y unidades de disco (por ejemplo, los 505 procesadores y unidades de disco). Para facilitar este almacenamiento simultáneo, el circuito de formateo de datos (203 en la Figura 2) almacena en memoria tampón los datos de entrada del dispositivo de almacenamiento masivo y transfiere una secuencia en serie de palabras de datos de 16 bits a los registros de entrada en un orden adecuado. El orden específico facilita el almacenamiento simultáneo de todas las palabras en todos los registros de entrada. Por ejemplo, los datos se reordenan de tal forma que las palabras almacenadas simultáneamente serán las palabras 1 a 5, las palabras 80.001 a 80.005, las palabras 160.001 a 160.005, y así sucesivamente en todos los subgrupos de unidades de disco. En otras palabras, los datos se reordenan de una forma que permite el almacenamiento simultáneo de las palabras de datos de una fila completa del mapa de datos representado en la Figura 4.
De modo similar, es posible almacenar otro programa de vídeo mediante este procedimiento de creación de bandas de datos, empezando a almacenar el segundo programa con las unidades de disco 6 a 10. A continuación, el inicio de cada programa se desplaza, respecto del inicio del programa almacenado previamente, en un subgrupo de unidades de disco. Así pues, es posible almacenar una pluralidad de programas de vídeo a través de las unidades de disco.
Asimismo, en la siguiente descripción, se presupone que la secuencia de datos de entrada contiene palabras de paridad para facilitar la corrección de errores. A título ilustrativo, se puede suponer que las palabras de paridad se obtienen de las cuatro palabras de datos precedentes (por ejemplo, la palabra de paridad es una O exclusiva bit a bit de los bits de las cuatro palabras de datos precedentes). De esta forma, cada quinta palabra será una palabra de paridad y, entonces, cada quinta unidad de disco contendrá la palabra de paridad de las cuatro palabras anteriores. Por otra parte, si los datos de entrada no contienen las palabras de paridad, éstas se pueden generar e insertar en la secuencia de datos cuando los datos son almacenados en el servidor de información digital.
Una vez que la información solicitada (programa de vídeo) reside en las unidades de disco, el usuario puede solicitar que le sea enviada la información desde los discos hasta la red del usuario. Por ejemplo, manipulando un dispositivo de mandatos (no representado), se envía un mandato desde el usuario hasta la interfaz de mandatos. Mediante el dispositivo de mandatos, el usuario puede seleccionar información, reproducir, hacer retroceder, hacer retroceder rápidamente, hacer avanzar rápidamente, hacer avanzar muy rápidamente, pausar o detener la presentación de la información. Por ejemplo, si la información es una secuencia multimedios seleccionada, el usuario puede seleccionar una secuencia multimedios concreta en un menú de la pantalla del televisor. Una vez seleccionada la secuencia multimedios, el usuario controla la reproducción de la secuencia multimedios como si estuviera utilizando un reproductor de cintas de vídeo convencional. En la función más simple, el usuario selecciona "reproducir" y la secuencia multimedios es recuperada de las unidades de disco por los procesadores paralelos. Los datos se transfieren al circuito de multiplexación por medio de los circuitos E/S. Como se describe en relación con la Figura 2, el circuito de multiplexación formatea los datos mediante multiplexación, permitiendo de ese modo que un grupo de usuarios se conecte al sistema.
Mediante el DDS, una pluralidad de usuarios puede acceder de forma simultánea a la misma información o a otra. Además, estos usuarios pueden acceder a la información en cualquier momento y examinarla a diferentes velocidades (por ejemplo, pausa, avance rápido o retroceso, según las necesidades). Por lo tanto, el DDS representa una base de datos central (por ejemplo, una base de datos de vídeo) a la que puede accederse como si cada usuario dispusiera de la base de datos completa en su domicilio, con un retardo imperceptible.
La Figura 5 ilustra un mapa de datos utilizado para transferir las secuencias de datos solicitadas desde las unidades de disco hasta los usuarios, a través de los procesadores. En particular, tras solicitar una función (por ejemplo, "reproducir"), se asigna un intervalo de tiempo de un período de servicio al usuario. Existe un número finito de intervalos de tiempo (por ejemplo, 3200). Como se indica a continuación, los usuarios se asignan dinámicamente a los intervalos de tiempo y el intervalo concreto al que se asigna un usuario en principio puede ser cualquiera de los 3200 intervalos de tiempo disponibles. Dependiendo de las funciones utilizadas por los usuarios, los usuarios se reasignan a diferentes intervalos de tiempo durante los subsiguientes períodos de servicio. No obstante, como se describe a continuación, algunos de los 3200 intervalos de tiempo posibles se reservan para implementar funciones especiales.
En general, cada intervalo de tiempo representa accesos repetitivos a "elementos" consecutivos de información dentro del bloque de datos recuperado. Estos elementos pueden contener un byte (8 bits) o tan sólo un bit de información. El tamaño del elemento concreto depende de la aplicación. Por ahora, de conformidad con el mapa de almacenamiento de datos ilustrativo de la Figura 4, se supondrá que cada elemento contiene cuatro palabras de 16 bits de información de vídeo y una palabra de 16 bits de información de paridad. Además, existen 505 unidades de disco y los procesadores asociados (otros 7 procesadores son de reserva y pueden utilizarse si falla alguno de los otros procesadores y unidades de disco) que acceden de forma simultánea a 100 elementos de información de vídeo para 100 de 3000 usuarios posibles. Por lo tanto, todas las filas de palabras de datos y de paridad que delimitan los 100 intervalos de tiempo son servidas de forma simultánea. Dentro de cada intervalo de tiempo, el usuario asignado a éste es servido de forma repetitiva 16.000 veces y las 80.000 palabras de datos asociadas a estos accesos se almacenan en la memoria local (RAM). Por lo tanto, durante un período de servicio dado, cada procesador almacena 16.000 palabras en su memoria local durante un intervalo de tiempo dado (es decir, tras un período de servicio para 30 usuarios, se almacenan 480.000 palabras en la memoria local de cada procesador).
En un periodo de servicio, los 500 procesadores prestan servicio a 3000 usuarios. En cada período de servicio, cinco de los procesadores (es decir, un subgrupo de procesadores) no se utilizan para servir a los usuarios. Estos procesadores (procesadores 16 a 20 del periodo de servicio 1 de la Figura 5) no se utilizan para suministrar datos de usuario mientras sus respectivas unidades de disco efectúan el recalibrado. El recalibrado es un procedimiento convencional llevado a cabo por la mayor parte de unidades de disco de precio bajo periódicamente (por ejemplo, de cada 10 a cada 100 minutos de funcionamiento). Para asegurar que el recalibrado no se produzca de forma aleatoria y perjudique el acceso a los datos, el sistema obliga a cada unidad de disco a efectuar el calibrado en un momento predeterminado; por ejemplo, durante un intervalo de tiempo de recalibrado predefinido (intervalo de tiempo RECAL). El recalibrado del subgrupo de unidades de disco se completa en un período de servicio.
Las dos filas de intervalos de tiempo al final de un período de servicio se reservan para dos funciones especiales. En la primera función, se accede por segunda vez a los elementos que contienen errores que no se pudieron corregir mediante la palabra de paridad (por ejemplo, los elementos de datos que contienen dos errores). Así pues, se accede una segunda vez a las unidades de disco desde las cuales se accedió por primera vez al elemento que contiene el error, para tratar de recuperar los datos. Si los datos se recuperan sin errores, éstos se almacenan en la memoria local, en el emplazamiento de los datos erróneos. Por otra parte, si se produce el fallo de un procesador, el servidor se reconfigura a sí mismo para sustituir el procesador anómalo por uno de los procesadores de reserva. Si se produce el fallo de una unidad de disco, sus datos pueden recuperarse mediante corrección con la palabra de paridad. Entonces, la unidad puede ser cambiada y los datos reconstruidos mediante paridad pueden ser utilizados para restaurar los datos originales en la nueva unidad.
La segunda función, activada durante la segunda fila de intervalos de tiempo especiales, introduce más datos en las unidades de disco. Por ejemplo, si un usuario selecciona una secuencia multimedios que no está almacenada actualmente en las unidades de disco, esta fila se utiliza para almacenar los datos de la secuencia multimedios seleccionada de la forma descrita anteriormente en relación con la Figura 4 (por ejemplo, almacenando 80.000 palabras de programación de vídeo en cinco unidades de disco, almacenando a continuación las 80.000 palabras siguientes en las cinco unidades de disco siguientes y así sucesivamente hasta que se ha almacenado todo el programa). Repitiendo este procedimiento de almacenamiento en un número consecutivo de períodos de servicio, se almacena de forma distribuida un programa de vídeo completo entre las unidades de disco, sin incidir en el procedimiento de recuperación de datos para los usuarios.
Para recalibrar el siguiente subgrupo de unidades de disco consecutivas (por ejemplo, las unidades 21 a 25), la función de recalibrado (RECAL) se adelanta un intervalo de tiempo por cada período de servicio. Por lo tanto, como se observa en la Figura 5, si se supone que todos los usuarios se hallan en modalidad de reproducción, se aplica un adelanto de un intervalo de tiempo a todos los usuarios en cada período de servicio consecutivo. Así pues, las 80.000 palabras de datos siguientes del usuario 1 son proporcionadas ahora por los procesadores 6 a 10 y las unidades de disco 6 a 10, las 80.000 palabras de datos siguientes del usuario 2 son proporcionadas ahora por los procesadores 11 a 15 y las unidades de disco 11 a 15, y así sucesivamente. La corrección de errores y el relleno de datos se efectúan de la forma descrita anteriormente. Por consiguiente, mediante la función de reproducción, se hace avanzar secuencialmente a un usuario dado de un procesador al siguiente, para recuperar los datos distribuidos en el orden en que se almacenaron (en bloques de 80.000 palabras).
Para otras funciones, tales como la de avance rápido, el usuario avanza un número predefinido de intervalos de tiempo, en lugar de recuperar los datos de forma secuencial. Por ejemplo, si el usuario 2 recupera datos en el período de servicio 1 durante el intervalo de tiempo 2 y luego solicita el avance rápido, el siguiente elemento de datos para el usuario 2 se recupera en el período de servicio 2 durante, por ejemplo, el intervalo de tiempo 22. A continuación y hasta que la función de avance rápido se detiene, el intervalo de tiempo en el cual se recuperan los datos para el usuario 2 se adelanta 20 posiciones. El resultado es el avance rápido a través de los datos (por ejemplo, a través de un programa de vídeo). Se utiliza el mismo procedimiento general para el avance muy rápido, el retroceso o el retroceso rápido de la información. La velocidad de las funciones de avance rápido o de retroceso rápido viene determinada por el número de intervalos de tiempo que se saltan. Por lo tanto, antes de cada período de servicio, es necesario reasignar los usuarios a nuevos intervalos de tiempo dependiendo de las funciones solicitadas. Los detalles de este procedimiento de reasignación se proporcionan más adelante.
Para la función de pausa, se utiliza un intervalo de tiempo para acceder repetitivamente a información desde la misma unidad de disco hasta que el mandato de pausa se cambia por otro mandato. El mandato de parada, claro está, detiene la distribución de información para el usuario en la ubicación actual. La unidad de disco a la que se accede actualmente se almacena junto con un ID de usuario en una tabla, de tal forma que, cuando el usuario reanuda la reproducción, el sistema puede empezar a enviar datos desde la unidad de disco a la que se ha accedido en último lugar.
Como consecuencia del procedimiento de recuperación de datos llevado a cabo durante cada período de servicio, la memoria local de cada subgrupo contiene 16.000 palabras por cada uno de los 30 usuarios que son servidos por un procesador dado. Una vez que ha finalizado un período de servicio, el sistema continúa accediendo a nuevos datos dentro del siguiente período de servicio consecutivo. Los datos del período de servicio precedente que se almacenan en la memoria local se proporcionan durante los tiempos de acceso relativamente largos asociados a las unidades de disco. Así pues, por medio del secuenciador de tiempos de salida (OTS, descrito en relación con la Figura 11), los datos de un período de servicio precedente pasan al circuito de multiplexación, mientras que de forma simultánea los nuevos datos del período de servicio actual se almacenan en la memoria local.
De forma más concreta, la Figura 6 ilustra un diagrama de flujo de la rutina RECUPERACIÓN DE DATOS 600 que se utiliza durante cada periodo de servicio. Esta rutina es ejecutada de forma simultánea por todos y cada uno de los procesadores. Para simplificar, en la descripción siguiente se supone que la rutina se ejecuta en un solo procesador; no obstante, el lector deberá sobrentender que la rutina se ejecuta al mismo tiempo en otros 504 procesadores.
La rutina se inicia en la etapa 602, designada por "INICIO". En la etapa 604, la rutina inicializa un grupo de tablas y, entonces, los usuarios activos en ese momento se asignan a los intervalos de tiempo adecuados. Estas tablas incluyen una tabla de asignación global (GAT) y un par de tablas de asignación local (LAT). El par de LAT incluye una LAT actual (CLAT) y una LAT siguiente (NLAT). En general, las tablas contienen información relativa a la función actual de cada intervalo de tiempo de usuario disponible; por ejemplo, la identificación de usuario (ID) del usuario asignado, la modalidad de funcionamiento actual y siguiente del usuario, la dirección de disco de los datos a los que se va a acceder en siguiente lugar para prestar el servicio a dicho usuario, etc.
En concreto, la GAT contiene información para cada uno de los usuarios (por ejemplo, 3000). Se almacena una copia de la GAT en la memoria local de cada procesador. Cualquier alteración de la GAT (por ejemplo, un cambio en la modalidad de funcionamiento de un usuario) es actualizada por el ordenador principal. Cada entrada de la tabla se numera del 1 al 3000 (correspondientes al ID de usuario) y contiene la siguiente modalidad de funcionamiento para cada usuario y la dirección de memoria de un disco que llevará a cabo la recuperación de datos para dicha modalidad. Habitualmente, la dirección de disco es la dirección de la primera palabra de las 16.000 a las que se va a
acceder.
Por otro lado, las LAT se asocian a los procesadores individuales (es decir, cada procesador tiene un par de LAT diferente). La CLAT define la función de recuperación de datos que va a ser llevada a cabo por el procesador asociado en el período de servicio actual. La CLAT contiene una lista de los ID de los usuarios que van a ser servidos por el procesador durante el período de servicio actual, la modalidad de funcionamiento actual de cada usuario y la dirección de los datos a los que se va a acceder. Como el nombre implica, la NLAT define la operación de recuperación de datos que va a llevar a cabo el procesador asociado durante el siguiente período de servicio. La NLAT contiene una lista de los ID de los usuarios a los que se prestará servicio en el período de servicio siguiente, sus modalidades de funcionamiento y la dirección de los datos a los que se va a acceder.
Por lo tanto, en la etapa 604 de la Figura 6, se inicializan las entradas de las tablas de los usuarios activos actualmente. A continuación, en la etapa 606, se presta servicio a los usuarios; por ejemplo, se accede a los datos desde la unidad de disco ejecutando la rutina SERVICIO AL USUARIO 700. Seguidamente, en la etapa 608, se actualizan las tablas de asignación para reasignar los usuarios a nuevos intervalos de tiempo que serán utilizados durante el siguiente período de servicio. La reasignación de usuarios se lleva a cabo ejecutando la rutina ASIGNACIÓN DE USUARIOS 800. El bucle de generación de períodos de servicio a usuarios 610 se ejecuta repetitivamente para generar una serie consecutiva de períodos de servicio que incluyen recuperar datos de forma repetitiva y, a continuación, reasignar los usuarios.
Como se ilustra en la Figura 7, si se supone que los usuarios ya han sido asignados a los intervalos de tiempo, la rutina SERVICIO AL USUARIO 700 lleva a cabo todas las funciones para satisfacer la petición de datos de un usuario. La rutina SERVICIO AL USUARIO se inicia en la etapa 702 y continúa por la etapa 704, en la que la rutina averigua si el procesador que ejecuta esta rutina se halla dentro de una banda de recalibrado térmico, es decir, una serie vertical de intervalos de tiempo (véase la Figura 5) que se utiliza para llevar a cabo el recalibrado de una unidad de disco. Las tablas GAT, CLAT y NLAT contienen, en el campo de modalidad de cada una, una indicación de la necesidad o no de recalibrar la unidad de disco. Si la pregunta se contesta afirmativamente, la rutina determina, en la etapa 706, que la unidad de disco asociada al procesador lleve a cabo el recalibrado térmico. Por otra parte, si la pregunta de la etapa 704 se responde negativamente, la rutina continúa por la trayectoria NO hasta la etapa 708.
En la etapa 708, se accede a los datos de cada uno de los 30 usuarios tratados por el procesador que ejecuta esta rutina, y se almacenan en la memoria local. Dicho acceso a los datos requiere que el procesador recupere 16.000 palabras por cada uno de los 30 usuarios. La CLAT contiene la dirección de inicio de las 16.000 palabras para cada uno de los usuarios. El procesador recupera la palabra de datos de esa dirección y, a continuación, recupera las 15.999 palabras siguientes de la unidad de disco. Los usuarios asociados a los procesadores son servidos consecutivamente de esta manera.
Además, mientras se recuperan los datos de la unidad de disco y se almacenan en la memoria local, el procesador lleva a cabo la detección de errores. Una vez que los datos se han recuperado de la unidad de disco, tanto el procesador como el controlador del disco procesan las palabras de comprobación de los datos recuperados mediante un polinomio convolucional. Una vez concluida la recuperación, el controlador del disco envía las palabras de comprobación al procesador para que las compare con los valores procesados internamente por el procesador. Esta comparación permite detectar errores en la transmisión de los datos hasta el procesador.
Tras enviarse los datos de un usuario dado a la memoria local, se recuperan los datos del siguiente usuario. Durante la recuperación de los datos del siguiente usuario, se corrigen los errores detectados en los datos del usuario anterior. Para facilitar el procedimiento de corrección de errores, los procesadores adyacentes comparten, por medio del bus IPC, palabras de datos recién recuperadas y una palabra de paridad para llevar a cabo una comprobación de la paridad. La palabra de paridad en combinación con las otras cuatro palabras de un elemento pueden utilizarse para corregir cualquier error de palabra de datos individual detectado por el algoritmo de detección de errores CRC. Si existe más de una palabra errónea, los errores no se podrán corregir. Por consiguiente, la rutina 700 define, en la etapa 710, un intervalo de tiempo de corrección de errores especial que se utiliza una vez que se han recuperado todos los datos de usuario. En este intervalo de tiempo, se accede por segunda vez a los datos erróneos para tratar de recuperarlos correctamente. Este intervalo de tiempo, como los otros, permite recuperar 16.000 palabras por medio de un procesador dado.
En las etapas 712 y 714, se introducen nuevos datos en la unidad de disco asociada al procesador. En particular, la etapa 712 se utiliza para almacenar datos de emisiones "en directo" o "fuera de aire" correctamente codificados en la unidad de disco. En la etapa 714, puede almacenarse un bloque de 16.000 palabras de información de vídeo en la unidad de disco. Por último, en la etapa 716, la rutina 700 regresa al bucle de generación de periodos de servicio 610 de la Figura 6.
Debe observarse que mientras se ejecuta la rutina RECUPERACIÓN DE DATOS, el procesador accede a los datos almacenados en la memoria local durante el período de servicio precedente y pasa dichos datos al OTS. El OTS reorganiza los datos para generar una secuencia de datos normalizada que no es alterada por el procedimiento de reasignación. Dicho de otro modo, el OTS asegura que, independientemente del intervalo de tiempo al que se reasigna un usuario, los datos de usuario serán organizados de la forma adecuada para ser utilizados por el circuito de multiplexación.
La Figura 8 ilustra la rutina REASIGNACIÓN DE USUARIOS 800. Una vez por período de servicio, esta rutina reasigna cada uno de los usuarios a un intervalo de tiempo adecuado en el que se ejecuta la modalidad de funcionamiento (función) actual del usuario. La rutina se inicia en la etapa 802 y continúa por la etapa 804, en la que los usuarios son ordenados por prioridades de acuerdo con la función solicitada actualmente y la función que han solicitado para ejecutar en el período de servicio siguiente.
Por lo general, esta rutina se utiliza para reasignar los 30 usuarios tratados por el procesador a los 30 intervalos de tiempo posibles disponibles en el período de servicio. La reasignación se lleva a cabo comparando la información de las diversas tablas de asignación. Esta información indica al procesador la prioridad de un usuario particular; por ejemplo, indica si un usuario particular debe acceder a los datos de un procesador particular o si el usuario puede acceder a la información de los procesadores adyacentes sin incidir en los datos examinados. Por ejemplo, la prioridad más alta (la prioridad 1) se asigna siempre a los usuarios que se hallan actualmente en la modalidad de reproducción y que todavía permanecerán en la modalidad de reproducción en el período de servicio siguiente. Estos usuarios deben recibir la serie de palabras de datos siguiente desde la unidad de disco adecuada (sensible al disco) y en el momento adecuado (sensible al tiempo), de lo contrario los usuarios percibirán un salto o corte en el vídeo. La prioridad 1 se asigna también al procedimiento de recalibrado térmico.
Por otro lado, no es necesario proporcionar el siguiente grupo de palabras de datos exacto (no sensible al disco) a los usuarios que están utilizando actualmente la modalidad de avance rápido, por ejemplo, y que en el período de servicio siguiente van a utilizar la modalidad de reproducción, sino proporcionarles las palabras de datos en el momento adecuado (sensibles al tiempo). El usuario en realidad no advierte si los datos de vídeo proporcionados presentan un desplazamiento de 80000 palabras, cuando el vídeo vuelve a empezar en la modalidad de reproducción. Por lo tanto, a los usuarios que cambian de la modalidad de avance rápido a la modalidad de reproducción se les asigna una prioridad inferior (la prioridad 2). La tabla siguiente resume las diversas modalidades y sus asignaciones de prioridad.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
(Tabla pasa a página siguiente)
TABLA 1 Tabla de prioridades de abonado
1
En la tabla:
Sensible al tiempo
\hskip1cm1 = indica que deben servirse en este período de servicio, con salida especial
\hskip1cm2 = indica que deben servirse en este período de servicio, con salida genérica
\hskip1cm3 = indica que deben servirse lo antes posible, sin salida previa
Sensible al disco
\hskip1cm1 = indica que deben ser servidos por este subgrupo de discos
\hskip1cm2 = indica que deben ser servidos por \pm 1 subgrupo de discos
\hskip1cm3 = indica que deben ser servidos por \pm algunos subgrupos de discos
\hskip1cm4 = indica que deben ser servidos por \pm muchos subgrupos de discos
Las salidas especiales son las que deben suministrarse al usuario para facilitar una recuperación de datos precisa. En general, los datos de vídeo están comprimidos e incluyen ciertas palabras de control de decompresión que deben enviarse a la unidad de sobremesa del usuario en el momento adecuado, para facilitar una decompresión de datos precisa y una adecuada presentación de éstos en pantalla. A estas salidas especiales (palabras de control de decompresión y datos asociados) se les asigna una prioridad sensible al tiempo superior a la de la salida genérica. La salida genérica no contiene datos de vídeo comprimido, pero puede contener datos de control necesarios para las funciones de la unidad de sobremesa. Si no existe salida previa, entonces la salida solicitada no es muy sensible al tiempo y, en lugar de proporcionarse los datos en el siguiente período de servicio, es posible proporcionarlos en un subsiguiente período de servicio, sin que esto sea percibido por el observador. Por ejemplo, cuando se pasa de la modalidad de parada a la modalidad de reproducción, un retardo de un período de servicio en el reinicio del programa no incidirá en gran medida en la percepción por el observador del programa de vídeo.
La tabla CLAT, asociada a un procesador dado, define la modalidad de funcionamiento (la función) utilizada por cada uno de los usuarios que son servidos actualmente por el procesador. Si durante el período de servicio uno de los usuarios cambia de función, el ordenador principal actualiza la tabla GAT con la nueva función del usuario y la dirección de los datos que es necesario enviar al usuario para realizar esa función. El ordenador principal comunica este cambio de modalidad a todos los procesadores.
Durante el período de servicio actual, el procesador recupera la información GAT para los usuarios a los que sirve en ese momento. Esta información GAT se introduce en la tabla NLAT. Comparando las funciones NLAT con las funciones CLAT, el procesador determina, de acuerdo con la Tabla 1, la prioridad para cada uno de los usuarios actuales. Además, en la etapa 804, la tabla NLAT y la tabla CLAT se intercambian (es decir, los punteros de cada tabla se intercambian, de tal forma que la información CLAT pasa a ser ahora la información NLAT y viceversa). Puesto que cada uno de los procesadores cumple este mismo procedimiento de asignación de prioridades, todos los usuarios quedarán clasificados por prioridad y la rutina REASIGNACIÓN DE USUARIOS 800 continúa por la etapa 806.
En la etapa 806, los usuarios de prioridad 1 se reasignan a los intervalos de tiempo adecuados mediante la rutina REASIGNACIÓN DE PRIORIDAD 1 900. Una vez reasignados los usuarios de prioridad 1, la rutina 800 reasigna en las etapas 808, 810 y 812 los usuarios de prioridad 2, 3 y 4, ejecutando las rutinas REASIGNACIÓN DE PRIORIDAD 2, 3 y 4 (1000, 1100 y 1200), respectivamente. En general, mediante estas rutinas, cada procesador trata de asignar los usuarios de prioridad baja a un intervalo de tiempo asignado. Sin embargo, cuando se considera que un procesador sirve a un número de usuarios demasiado alto, el usuario sobrante se cede a otro procesador en otro intervalo de tiempo. Cada una de estas rutinas se describirá en detalle más adelante. La rutina REASIGNACIÓN DE USUARIOS 800 regresa, en la etapa 814, a la rutina SERVICIO AL USUARIO 700.
La Figura 9 ilustra la rutina REASIGNACIÓN DE PRIORIDAD 1 900. La rutina se inicia en la etapa 902 y continúa por la etapa 904. En la etapa 904, la rutina pasa, por medio del bus IPC, los ID de los usuarios de prioridad 1 indicados en la CLAT a un grupo adyacente de procesadores que se ocupan de los usuarios en el siguiente intervalo de tiempo (por ejemplo, el ID se pasa al siguiente grupo de cinco procesadores de la derecha). Al mismo tiempo, el procesador recibe los ID de los usuarios de prioridad 1 desde uno de los procesadores que delimita el intervalo de tiempo por la izquierda. Los ID de este procesador se introducen en la CLAT.
En la etapa 906, las direcciones de datos de usuario almacenadas en la GAT deben actualizarse para los usuarios que han sido pasados desde el último intervalo de tiempo de una fila (por ejemplo, desde los procesadores 501 a 505) hasta el primer intervalo de tiempo de la siguiente fila (por ejemplo, hasta los procesadores 1 a 5). Por lo general, cuando los usuarios se pasan de un intervalo de tiempo al siguiente, la dirección de inicio de los datos solicitados no cambia. No obstante, si cuando se reasigna un usuario éste pasa del último intervalo de tiempo al primer intervalo de tiempo de otra fila, la dirección de los datos solicitados se incrementa en 16.000 direcciones. Esto se produce como consecuencia de la forma en que los datos se distribuyen a través de las unidades de disco (véase la Figura 4 y la descripción asociada). Por consiguiente, la dirección GAT para ese usuario deberá ser actualizada.
En la etapa 908, la rutina REASIGNACIÓN DE PRIORIDAD 1 900 vuelve a la rutina REASIGNACIÓN DE USUARIOS 800.
La Figura 10 ilustra un diagrama de flujo de la rutina REASIGNACIÓN DE PRIORIDAD 2, 3 Y 4 1000. La rutina se describirá en relación con la reasignación de usuarios de prioridad 2. No obstante, para reasignar los usuarios de prioridad 3 o prioridad 4, basta con ejecutar de nuevo la rutina para procesar dichos usuarios.
La rutina 1000 se inicia en la etapa 1002 y continúa por la etapa 1004. En la etapa 1004, la rutina pasa los ID de los usuarios de prioridad 2, por medio del bus IPC, a un procesador de destino que suele estar situado a cierto número de procesadores de distancia. El número concreto de procesadores (o subgrupos de procesadores) que se saltan depende de la prioridad del usuario. Por ejemplo, un usuario en modalidad de avance rápido (usuario de prioridad 2) puede saltar decenas o incluso centenas de procesadores dependiendo de la configuración del sistema. Por lo tanto, según la modalidad, la rutina dirige el ID de usuario hacia un procesador adecuado pero alejado. Al mismo tiempo, el procesador recibe los ID de los usuarios que deben reasignarse a dicho procesador. Si el procesador particular no ha ocupado por completo los 30 intervalos de tiempo de que dispone con usuarios de prioridad 1, entonces acepta los usuarios de prioridad 2 y los introduce en la CLAT. Como en el caso de la rutina REASIGNACIÓN DE PRIORIDAD 1, la rutina REASIGNACIÓN DE PRIORIDAD 2 debe incrementar, en la etapa 1006, la dirección de la GAT para los usuarios que han cambiado de fila.
En la etapa 1008, la rutina averigua si el número de usuarios de prioridad 2 asignados actualmente es superior al número máximo de usuarios permitido (por ejemplo, 30). De ser así, los usuarios sobrantes deben ser reasignados. Por lo tanto, si la pregunta se responde afirmativamente, la rutina continúa por la trayectoria SÍ hasta las etapas 1010 y 1012. En estas dos etapas, los ID de los usuarios se pasan y reciben repetidamente, actualizándose la GAT cuando proceda, hasta que no queda ningún usuario de prioridad 2 por reasignar. En ese momento, la pregunta de la etapa 1008 se responde afirmativamente y la rutina REASIGNACIÓN DE PRIORIDAD 2 vuelve, en la etapa 1014, a la rutina REASIGNACIÓN DE USUARIOS 800.
Para reasignar los usuarios de prioridad 3 y 4, se ejecuta de nuevo la rutina ilustrada en la Figura 10 para estos usuarios. De esta forma, todos los usuarios serán finalmente reasignados a intervalos de tiempo (procesadores) adecuados.
Una vez ejecutadas las rutinas anteriores, en cada período de servicio, se almacenarán 16.000 palabras de datos para cada uno de los 30 usuarios en la memoria local asociada a cada procesador. Un grupo de cuatro procesadores consecutivos define un elemento de datos que contiene 4 palabras de datos (64 bits) para un usuario particular. La palabra de paridad es ignorada ahora. Puesto que los usuarios son asignados dinámicamente, la ubicación concreta de los datos de un usuario particular es arbitraria. Para facilitar la utilización de un circuito de multiplexación convencional, los datos deben hallarse en un orden repetible para acceder a éstos y suministrarlos desde el servidor. Por consiguiente, para cambiar el orden de los datos de usuario por un orden predefinido que pueda ser utilizado con facilidad por el circuito de multiplexación para distribuir los datos a los usuarios, se utiliza un secuenciador de tiempos de salida (OTS).
La Figura 11 ilustra un diagrama de bloques de un OTS 1100. Por lo general, este circuito examina cada elemento de datos y lo ordena de nuevo según un orden predefinido. Por motivos de simplificación, el orden predefinido es el orden ascendente de ID de usuarios (por ejemplo, de 1 a 3000). Por medio del OTS, una orden arbitraria de datos de salida del usuario se convierte en una secuencia de datos de salida de 64 bits de ancho dispuestos por orden ascendente de ID de usuario. La secuencia de 64 bits de ancho se define como una serie de elementos de datos de 64 bits obtenidos a través de 64 líneas paralelas, estando situado el primer bit de cada elemento de datos de usuario en la línea 1, estando situado el segundo bit de cada elemento de datos del usuario en la línea 2 y así sucesivamente para la totalidad de los 64 bits de un elemento de datos. Por lo tanto, las 64 líneas paralelas contienen un bit por cada elemento de datos de usuario asociado a los 3000 usuarios. Los elementos se ordenan del 1 al 3000, luego se repite esta acción para el siguiente grupo de elementos de datos y así sucesivamente. Por consiguiente, los datos de entrada ordenados arbitrariamente se habrán distribuido según un orden numérico estándar que puede repetirse aunque los usuarios puedan ser reasignados a cualquiera de los procesadores. Debido a esto, el circuito OTS en esencia presenta como entrada una primera secuencia de datos multiplexados y como salida una segunda secuencia de datos multiplexados. La segunda secuencia de datos multiplexados es una versión reorganizada de la primera secuencia de datos.
En particular, el OTS contiene un contador principal 1108, una pluralidad de circuitos de selección de elementos de datos 1102, una pluralidad de multiplexores (MUX) 1104 y un registro de salida 1106. El contador principal cuenta de 0 a 2999 y a continuación vuelve a ponerse a 0 (es decir, el recuento del contador es equivalente al número de usuarios). Cuando se dispone de elementos de datos de usuario para suministrar, éstos se almacenan en los circuitos de selección de elementos de datos, junto con el ID de usuario que corresponde al elemento de datos almacenado. Por lo tanto, los circuitos de selección de elementos de datos almacenan de forma acumulativa un elemento de datos (4 palabras de datos o 64 bits) para todos y cada uno de los usuarios (es decir, los usuarios del 1 al 3000).
Cuando el contador 1108 pasa en secuencia del 1 al 3000, se accede por turnos a los circuitos de selección de elementos de datos y se obtiene un elemento de datos de cada uno de los circuitos por cada valor del contador principal. Los MUX 1104 conectados en secuencia pasan cada uno de los elementos de datos al registro de 64 bits 1106 para la resincronización. Una vez finalizada la resincronización, la salida que se obtiene es una serie multiplexada de elementos de datos ordenados por orden ascendente de ID de usuarios.
De forma más particular, los circuitos de selección de elementos de datos contienen un conjunto de registros 1110 que permiten el almacenamiento y el doble almacenamiento en memoria tampón de los elementos de datos de todos los usuarios en un período de servicio (por ejemplo, 30), así como del ID de usuario para cada uno de los 4 elementos de palabras. La utilización del doble almacenamiento en memoria tampón permite al conjunto almacenar elementos y, al mismo tiempo, recuperar elementos. Los registros de salida de los dieciséis procesadores (un grupo de procesadores) están conectados a un circuito de selección de elementos de datos 1102. Cada registro de 64 bits 1114 del conjunto está conectado a un selector 1112. Cuando el recuento del contador principal es equivalente al ID de un usuario del conjunto 1110, el elemento de datos asociado a dicho ID de usuario se pasa a la unidad de retardo 1115 a través del selector. Cuando el contador principal llega a 0, según el procedimiento habitual de almacenamiento doble en memoria tampón, se accede a los registros en los que previamente se almacenaban datos para recuperar datos.
Además, si se pasa un elemento de datos a través del selector, se genera la señal COINCIDENTE que indica que en ese recuento particular este circuito de selección de elementos de datos particular 1102 presenta una salida. El elemento de datos y la señal COINCIDENTE son retenidos en la unidad de retardo 1115 durante un número predefinido de ciclos de reloj. En concreto, el número predefinido de ciclos de reloj equivale a un ciclo de reloj por cada grupo de dieciséis procesadores, empezando por la izquierda, que este circuito de selección de elementos de datos representa. Por ejemplo, el circuito de selección de elementos de datos que contiene datos del grupo de procesadores situado más a la izquierda no presenta ningún retardo, el circuito que contiene datos del siguiente grupo de procesadores adyacente presenta un retardo de 1 ciclo de reloj, el circuito que contiene datos del siguiente grupo de procesadores adyacente presenta un retardo de 2 ciclos de reloj y así sucesivamente.
Una vez aplicado el retardo adecuado, el elemento de datos se aplica a una entrada del MUX 1104. La selección de entradas es controlada por la señal COINCIDENTE. De esta forma, si la señal COINCIDENTE es válida, el MUX selecciona la entrada que conecta con el circuito de selección de elementos de datos que ha generado la señal COINCIDENTE. De lo contrario, el MUX pasa por omisión a la otra entrada. Mediante este sistema, se obtiene un elemento de datos para cada recuento del contador principal. El elemento de datos que pasa actualmente a través de cada MUX se introduce de forma sincronizada en un registro de 64 bits de ancho 1116. En cada ciclo de reloj, los elementos de datos se pasan, a través de los MUX 1104 y los registros asociados 1116, al registro de salida 1106. Por consiguiente, la salida del registro 1106 es una serie de elementos de datos de 64 bits de ancho ordenados en secuencia por orden de ID de usuario (es decir, de 1 a 3000).
En la descripción anterior, se indica que el circuito OTS contiene un único reloj principal y una pluralidad de circuitos de retardo. No obstante, dichos circuitos de retardo requieren otros circuitos aparte del circuito OTS integrado. Por consiguiente, en una realización alternativa, se utiliza una pluralidad de relojes principales, cada uno de los cuales está conectado individualmente a un circuito de selección de elementos de datos. El valor inicial de cada reloj principal está preestablecido para proporcionar un retardo de recuento intrínseco. Por ejemplo, si el contador principal situado más a la izquierda se inicializa con un valor de cero, el siguiente contador adyacente se inicializa con un valor de 2999, el siguiente contador adyacente se inicializa con un valor de 2998 y así sucesivamente. De esta forma, los contadores proporcionan un retardo adecuado (1 ciclo de reloj por cada circuito de selección de elementos de datos) para la recuperación de elementos de datos desde el conjunto de registros.
Esta secuencia de elementos de datos reordenada es procesada fácilmente por un circuito de multiplexación para distribuir los elementos de datos a las redes de usuario adecuadas. Debe observarse que, para simplificar la descripción, el OTS se describe como un circuito separado de los subsistemas de procesador; no obstante, los expertos en la materia sobrentenderán que el OTS puede integrarse con facilidad en los subsistemas de procesador, de tal forma que el conjunto de registros se distribuye entre los subsistemas.
Aunque se han ilustrado y descrito en detalle diversas realizaciones que incorporan las enseñanzas de la presente invención, los expertos en la materia serán capaces de diseñar fácilmente otras realizaciones diversas que también incluirán dichos avances. El aparato y el procedimiento descritos en la presente memoria tienen aplicación en el campo de los servidores de vídeo, la obtención de imágenes clínicas, los efectos especiales y los sistemas de entretenimiento basados en la animación y la localización, entre otros.

Claims (13)

1. Procedimiento para almacenar datos en un sistema de distribución de datos de múltiples usuarios (106) que presenta una pluralidad de dispositivos de almacenamiento de información (224n, 226n y 228n), comprendiendo el procedimiento las etapas siguientes:
a)
provisión de una secuencia continua (400) de datos que se subdivide en segmentos discretos (W1 a W11);
b)
división de dicha pluralidad de dispositivos de almacenamiento de información (224n, 226n y 228n) en una pluralidad de subgrupos de dispositivos de almacenamiento de información, comprendiendo cada subgrupo por lo menos dos dispositivos de almacenamiento de información;
c)
selección de un primer grupo de segmentos discretos consecutivos de dicha secuencia de datos para su almacenamiento en uno de dichos subgrupos de dispositivos de almacenamiento de información;
d)
almacenamiento en forma de bandas de dicho primer grupo seleccionado de segmentos discretos de datos, en un primero de dichos subgrupos de dispositivos de almacenamiento de información y
e)
repetición de dicha etapa de selección de segmentos discretos para un siguiente grupo de segmentos discretos consecutivos dispuesto a continuación del grupo de segmentos discretos de dicha secuencia de datos seleccionado previamente, y repetición de dicha etapa de almacenamiento para dicho grupo de segmentos siguiente que se va a almacenar en forma de bandas en un siguiente subgrupo de dispositivos de almacenamiento de información, siendo dicho subgrupo siguiente diferente del subgrupo utilizado en la etapa de almacenamiento precedente,
e1)
de tal forma que los segmentos discretos almacenados forman, a través de todos los subgrupos de dispositivos de almacenamiento de información, una pluralidad de bloques contiguos de datos almacenados de un tamaño predeterminado, estando asociado cada bloque a un subgrupo individual de dichos subgrupos de dispositivos de almacenamiento de información y correspondiendo a una parte de la capacidad de almacenamiento de su subgrupo asociado, y
e2)
de tal forma que dichos segmentos discretos que forman cada uno de dichos bloques de datos presentan un diseño en bandas en cada bloque y a través de dicha pluralidad de subgrupos de dispositivos de almacenamiento de información.
2. Procedimiento según la reivindicación 1, que comprende el almacenamiento simultáneo de grupos de segmentos de datos discretos en dichos subgrupos de dispositivos de almacenamiento de información.
3. Procedimiento según la reivindicación 1, en el que los bloques de datos se almacenan en secuencia en dicho subgrupo de dispositivos de almacenamiento de información, formando de ese modo dichos bloques de datos un diseño en bandas de bloques contiguos a través de la pluralidad de subgrupos de dispositivos de almacenamiento de información.
4. Procedimiento según la reivindicación 1, que comprende además las etapas siguientes:
asignación de cada uno de los usuarios de la pluralidad de usuarios a por lo menos un procesador de una pluralidad de procesadores paralelos, cada uno de los cuales está conectado a un respectivo de dichos dispositivos de almacenamiento de información, representando dicho procesador asignado un intervalo de tiempo de un período de servicio que comprende una pluralidad de intervalos de tiempo;
acceso, por cada uno de los usuarios, en respuesta a los mandatos de un usuario y mediante uno de dichos procesadores asignados, a un segmento de datos discreto determinado de un dispositivo de almacenamiento de información asociado al procesador asignado;
suministro a cada uno de dichos usuarios de un respectivo segmento de datos discreto determinado;
reasignación de cada uno de dichos usuarios a un procesador diferente que representa un intervalo de tiempo diferente de un período de servicio subsiguiente, dependiendo de la modalidad actual de funcionamiento seleccionada por cada uno de los usuarios, y
repetición de dichas etapas de acceso, almacenamiento y reasignación para generar una secuencia continua de segmentos de datos discretos de acceso para cada uno de dichos usuarios.
5. Procedimiento según la reivindicación 4, en el que dichas etapas de acceso, suministro y reasignación definen períodos de servicio consecutivos durante los cuales se proporcionan datos a cada usuario.
6. Procedimiento según la reivindicación 5, en el que dicha etapa de reasignación comprende además la etapa de:
reasignación de cada uno de dichos usuarios, basándose en la modalidad de funcionamiento seleccionada para cada uno de los usuarios para su implementación en un subsiguiente período de servicio.
7. Procedimiento según la reivindicación 6, que comprende las etapas siguientes:
actualización, en respuesta a cualquier cambio de la modalidad de funcionamiento seleccionada por cualquiera de los usuarios, de una tabla de asignación global que contiene las modalidades de funcionamiento de los usuarios y las ubicaciones de las direcciones de los dispositivos de almacenamiento de información para los segmentos de datos a los que se va a acceder;
comparación de la modalidad de funcionamiento utilizada en el presente período de servicio con la modalidad de funcionamiento de la tabla de asignación global;
clasificación de los usuarios por orden de prioridad, basándose en los resultados de la etapa de comparación, y
reasignación de los usuarios a los procesadores, basándose en la clasificación por prioridad de los usuarios.
8. Procedimiento según la reivindicación 7, en el que dicha etapa de clasificación por prioridad se lleva a cabo determinando, en respuesta a la modalidad de funcionamiento seleccionada por cada usuario, un tiempo y un disco de forma crítica para el segmento de datos discreto que va a proporcionarse a cada usuario.
9. Procedimiento según la reivindicación 8, en el que se asigna y reasigna cada uno de los usuarios a un subgrupo de la pluralidad de procesadores y dispositivos de almacenamiento de información, de tal forma que se accede a los datos desde dicho subgrupo de la pluralidad de dispositivos de almacenamiento de información, estando los datos a los que se accede desde cada dispositivo de almacenamiento de información del subgrupo de dispositivos de almacenamiento de información enlazados entre sí para formar un elemento de datos.
10. Procedimiento según la reivindicación 9, que comprende las etapas de acceso reiterado a dichos dispositivos de almacenamiento de información de cada subgrupo para generar una serie de elementos de datos que representan dicho bloque de segmentos de datos para cada uno de los usuarios, y
el suministro de la serie de elementos de datos a cada uno de los usuarios.
11. Procedimiento según la reivindicación 9, que comprende las etapas siguientes:
provisión de una nueva secuencia de segmentos de datos continuos y discretos; y
almacenamiento, durante un período de servicio, de dicha nueva secuencia de segmentos de datos continuos y discretos dentro de dichos dispositivos de almacenamiento de información, mientras dichos procesadores proporcionan segmentos de datos a los usuarios durante el mismo período de servicio.
12. Procedimiento según la reivindicación 1, que comprende además, en el caso en que la totalidad de dichos subgrupos de dispositivos de almacenamiento de información han sido utilizados una vez o varias para el almacenamiento en un orden predeterminado de subgrupos, la etapa de nueva utilización de los subgrupos para almacenar los siguientes grupos seleccionados de segmentos discretos consecutivos en el mismo orden predeterminado de subgrupos.
13. Procedimiento según la reivindicación 1, que comprende el almacenamiento simultáneo de dicho grupo de segmentos discretos de datos en un subgrupo de dispositivos de almacenamiento de información.
ES95926230T 1994-07-19 1995-07-17 Sistema de almacenamiento, recuperacion y distribucion de datos de multiples usuarios, que utiliza un almacenamiento distribuido de datos deun flujo continuo de datos. Expired - Lifetime ES2240976T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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
US275742 2001-03-14

Publications (1)

Publication Number Publication Date
ES2240976T3 true ES2240976T3 (es) 2005-10-16

Family

ID=23053618

Family Applications (1)

Application Number Title Priority Date Filing Date
ES95926230T Expired - Lifetime ES2240976T3 (es) 1994-07-19 1995-07-17 Sistema de almacenamiento, recuperacion y distribucion de datos de multiples usuarios, que utiliza un almacenamiento distribuido de datos deun flujo continuo de datos.

Country Status (8)

Country Link
US (4) US5671377A (es)
EP (2) EP0771468B1 (es)
JP (1) JP4195725B2 (es)
KR (2) KR100374070B1 (es)
CA (2) CA2499802C (es)
DE (1) DE69534248T2 (es)
ES (1) ES2240976T3 (es)
WO (1) WO1996002931A1 (es)

Families Citing this family (193)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996012255A1 (fr) 1994-10-12 1996-04-25 Technical Maintenance Corporation Systeme de reproduction audio-visuelle numerique intelligent
US7188352B2 (en) 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
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
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
US5862312A (en) * 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6449730B2 (en) 1995-10-24 2002-09-10 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
US5940073A (en) 1996-05-03 1999-08-17 Starsight Telecast Inc. Method and system for displaying other information in a TV program guide
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
SK102399A3 (en) * 1997-01-13 2000-01-18 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
EP1036466B1 (en) 1997-07-21 2003-03-26 E Guide, Inc. Method for navigating within a television program guide having advertisements
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
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
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
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
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
US6859799B1 (en) 1998-11-30 2005-02-22 Gemstar Development Corporation Search engine for video and graphics
US7444663B2 (en) 1998-12-31 2008-10-28 Lodgenet Interactive Corporation Menuing system for controlling content delivery within a video distribution system
US7000243B1 (en) 1998-12-31 2006-02-14 Oncommand Corporation Allocating computer resources 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
US6289376B1 (en) * 1999-03-31 2001-09-11 Diva Systems Corp. Tightly-coupled disk-to-CPU storage server
US6604224B1 (en) * 1999-03-31 2003-08-05 Diva Systems Corporation Method of performing content integrity analysis of a data stream
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
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US7086077B2 (en) 1999-04-01 2006-08-01 Sedna Patent Services, Llc Service rate change method and apparatus
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
US8763053B1 (en) * 1999-04-01 2014-06-24 Cox Communications, Inc. File system for a file server of a video-on-demand system
US6473858B1 (en) 1999-04-16 2002-10-29 Digeo, Inc. Method and apparatus for broadcasting data with access control
US6526580B2 (en) * 1999-04-16 2003-02-25 Digeo, Inc. Broadband data broadcasting service
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
CA2393621C (en) 1999-12-10 2010-02-09 Diva Systems Corporation Method and apparatus for performing user migration within a video on demand 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
CN100508577C (zh) 2000-03-31 2009-07-01 联合视频制品公司 用于减少节目记录中的截断的方法
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
US8296792B2 (en) 2000-04-24 2012-10-23 Tvworks, Llc Method and system to provide interactivity using an interactive channel bug
US7702995B2 (en) * 2000-04-24 2010-04-20 TVWorks, LLC. Method and system for transforming content for execution on multiple platforms
US8936101B2 (en) 2008-07-17 2015-01-20 Halliburton Energy Services, Inc. Interventionless set packer and setting method for same
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
JP2004506980A (ja) * 2000-08-11 2004-03-04 3ウェア、 インコーポレイテッド コンピュータネットワークを介してブロックレベルストレージアクセスを提供するためのアーキテクチャ
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
US8255961B2 (en) 2000-10-11 2012-08-28 United Video Properties, Inc. Systems and methods for caching data in media-on-demand systems
ES2312475T3 (es) 2000-10-11 2009-03-01 United Video Properties, Inc. Sistemas y metodos para proporcionar el almacenamiento de datos en servidores de un sistema de entrega de medios bajo demanda.
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
US6901491B2 (en) * 2001-10-22 2005-05-31 Sun Microsystems, Inc. Method and apparatus for integration of communication links with a remote direct memory access protocol
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
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8151304B2 (en) 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US9646339B2 (en) 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8584175B2 (en) 2002-09-16 2013-11-12 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
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US12100258B2 (en) 2002-09-16 2024-09-24 Touchtunes Music Company, Llc Digital downloading jukebox with enhanced communication features
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
US8131926B2 (en) * 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US7594075B2 (en) 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
US8346843B2 (en) 2004-12-10 2013-01-01 Google Inc. System and method for scalable data distribution
US20060167982A1 (en) * 2005-01-07 2006-07-27 Apple Computer, Inc. Restricted media sharing over networks
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
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
US8401869B2 (en) * 2005-08-24 2013-03-19 Image Stream Medical, Inc. 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
GB2454106B (en) 2006-06-06 2010-06-16 Channel D Corp 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
US12450978B2 (en) 2007-01-17 2025-10-21 Touchtunes Music Company Llc. 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
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
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
US7886214B2 (en) * 2007-12-18 2011-02-08 Intel Corporation Determining a message residue
US8042025B2 (en) * 2007-12-18 2011-10-18 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
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
EP2409273A4 (en) 2009-03-18 2016-05-11 Touchtunes Music Corp ENTERTAINMENT SERVER AND RELATED SOCIAL NETWORK SERVICES
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
US12112093B2 (en) 2009-03-18 2024-10-08 Touchtunes Music Company, Llc Entertainment server and associated social networking services
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
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
CN105374380A (zh) 2010-01-26 2016-03-02 踏途音乐公司 具有改进的用户界面的数字点播设备和相关方法
US8935719B2 (en) 2011-08-25 2015-01-13 Comcast Cable Communications, Llc Application triggering
GB2526955B (en) 2011-09-18 2016-06-15 Touchtunes Music Corp 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
US8880543B2 (en) 2012-03-16 2014-11-04 Google Inc. Aggregation system for downloading resources
US8862564B2 (en) 2012-03-16 2014-10-14 Google Inc. Sponsoring resource downloads
WO2013146865A1 (ja) * 2012-03-27 2013-10-03 三菱電機株式会社 デジタル放送受信装置及びデジタル放送受信方法
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
WO2015070070A1 (en) 2013-11-07 2015-05-14 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
CA2943616A1 (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
US11740868B2 (en) * 2016-11-14 2023-08-29 Google Llc System and method for sorting data elements of slabs of registers using a parallelized processing pipeline
WO2018213726A1 (en) 2017-05-18 2018-11-22 The Broad Institute, Inc. Systems, methods, and compositions for targeted nucleic acid editing
WO2021221189A1 (ko) * 2020-04-28 2021-11-04 엘지전자 주식회사 신호 처리 장치 및 이를 구비하는 영상표시장치
KR20240046822A (ko) * 2021-10-14 2024-04-09 엘지전자 주식회사 디스플레이 장치

Family Cites Families (30)

* Cited by examiner, † Cited by third party
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
CA1289671C (en) * 1986-10-28 1991-09-24 Thinking Machines Corporation Massively parallel processor
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
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
DE69030886T2 (de) * 1989-08-23 1998-03-05 Delta Beta Pty. Ltd., Fremantle, W.A. Optimisierung einer programmübertragung
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 再構成可能なトーラス・ネットワーク方式
EP0701715A4 (en) * 1993-06-04 1999-11-17 Network Appliance Corp METHOD FOR PROVIDING PARITY IN A RAID SUBSYSTEM USING REMANENT MEMORY
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

Also Published As

Publication number Publication date
KR100374070B1 (ko) 2003-05-12
DE69534248T2 (de) 2006-05-04
JPH10503066A (ja) 1998-03-17
KR970705256A (ko) 1997-09-06
EP0771468A4 (en) 2000-08-23
CA2195431A1 (en) 1996-02-01
JP4195725B2 (ja) 2008-12-10
EP1548606A2 (en) 2005-06-29
DE69534248D1 (de) 2005-07-07
US5920702A (en) 1999-07-06
EP0771468A1 (en) 1997-05-07
US5671377A (en) 1997-09-23
CA2499802A1 (en) 1996-02-01
CA2499802C (en) 2009-09-29
EP1548606A3 (en) 2012-02-15
WO1996002931A1 (en) 1996-02-01
US5913026A (en) 1999-06-15
EP0771468B1 (en) 2005-06-01
CA2195431C (en) 2005-06-14
US6529994B1 (en) 2003-03-04
KR100377092B1 (ko) 2003-03-19

Similar Documents

Publication Publication Date Title
ES2240976T3 (es) Sistema de almacenamiento, recuperacion y distribucion de datos de multiples usuarios, que utiliza un almacenamiento distribuido de datos deun flujo continuo de datos.
EP0727750B1 (en) Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses
US8281067B2 (en) Disk array controller with reconfigurable data path
ES2234729T3 (es) Metodo y dispositivo para decodificar un flujo de datos de video en modos especiales de reproduccion.
US8713405B2 (en) Method and apparatus for allocating erasure coded data to disk storage
US5878280A (en) Data buffering system for plural data memory arrays
JPH06161672A (ja) プログラム可能なディスクドライブアレイコントローラ
AU2004294208A1 (en) Semi-static distribution technique
US6427212B1 (en) Data fault tolerance software apparatus and method
JPH07295763A (ja) ディスク・アレイ装置およびデータの格納方法
US5862313A (en) Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
TW201017404A (en) System and method for loose coupling between RAID volumes and drive groups
JPH11504746A (ja) 複数のパリティ・グループを持つ多重ディスク・ドライブ配列
CN102037514A (zh) 包括重排网络的数据处理系统
ES2206862T3 (es) Dispositivo de seleccion de elementos de datos de arbol binario y espaciador atm que comprende dicho dispositivo.
US9619179B2 (en) Data storage apparatus using sequential data access over multiple data storage devices
US20130073815A1 (en) Flexible command packet-header for fragmenting data storage across multiple memory devices and locations
JP3600334B2 (ja) 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置
US5892780A (en) Data storage system and parity generation method for data storage system
EP0702302B1 (en) Disk array for data storage
US20070250737A1 (en) Method and Apparatus for Aligned Data Storage Addresses in a Raid System
KR100410709B1 (ko) 데이터블록의스트림저장방법,데이터블록판독방법,데이터블록의스트림저장시스템,및데이터블록판독시스템
JP2000243070A (ja) データ蓄積装置および方法、ならびに、データ送出装置および方法
JPH1124888A (ja) Fifoメモリ制御装置
JPH09244820A (ja) ディスクアレイ装置