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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/226—Characteristics of the server or Internal components of the server
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/2312—Data placement on disk arrays
- H04N21/2318—Data placement on disk arrays using striping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
- H04N21/2396—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/40—Combinations of multiple record carriers
- G11B2220/41—Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
- G11B2220/412—Distributed storage methods, i.e. the system may autonomously determine for a storage device that provides enough storage capacity for recording
Landscapes
- Engineering & Computer Science (AREA)
- 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.
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.
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)
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.
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)
| 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)
| 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 |
-
1994
- 1994-07-19 US US08/275,742 patent/US5671377A/en not_active Expired - Lifetime
-
1995
- 1995-07-17 WO PCT/US1995/008640 patent/WO1996002931A1/en not_active Ceased
- 1995-07-17 ES ES95926230T patent/ES2240976T3/es not_active Expired - Lifetime
- 1995-07-17 EP EP95926230A patent/EP0771468B1/en not_active Expired - Lifetime
- 1995-07-17 DE DE69534248T patent/DE69534248T2/de not_active Expired - Lifetime
- 1995-07-17 KR KR1019970700429A patent/KR100374070B1/ko not_active Expired - Fee Related
- 1995-07-17 KR KR10-2002-7009857A patent/KR100377092B1/ko not_active Expired - Fee Related
- 1995-07-17 EP EP05075507A patent/EP1548606A3/en not_active Withdrawn
- 1995-07-17 CA CA002499802A patent/CA2499802C/en not_active Expired - Fee Related
- 1995-07-17 CA CA002195431A patent/CA2195431C/en not_active Expired - Fee Related
- 1995-07-17 JP JP50509296A patent/JP4195725B2/ja not_active Expired - Fee Related
-
1997
- 1997-04-24 US US08/847,591 patent/US5913026A/en not_active Expired - Lifetime
- 1997-04-24 US US08/847,590 patent/US5920702A/en not_active Expired - Lifetime
-
1999
- 1999-05-18 US US09/313,408 patent/US6529994B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| 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) | ディスクアレイ装置 |