ES2226352T3 - Gestion de memoria en una receptor/descodificador. - Google Patents
Gestion de memoria en una receptor/descodificador.Info
- Publication number
- ES2226352T3 ES2226352T3 ES99910630T ES99910630T ES2226352T3 ES 2226352 T3 ES2226352 T3 ES 2226352T3 ES 99910630 T ES99910630 T ES 99910630T ES 99910630 T ES99910630 T ES 99910630T ES 2226352 T3 ES2226352 T3 ES 2226352T3
- Authority
- ES
- Spain
- Prior art keywords
- message
- fifo
- buffer
- receiver
- section
- 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
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4435—Memory management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
- G06F5/12—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
- G06F5/14—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
- Circuits Of Receivers In General (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Information Transfer Systems (AREA)
- Channel Selection Circuits, Automatic Tuning Circuits (AREA)
Abstract
Receptor/descodificador que comprende: al menos un puerto (10) para recibir mensajes; al menos un módulo de aplicación (2); una memoria (13) que incluye una sección (13-C)de memoria tampón y una sección FIFO (13-F);medios de control (14-B) de memoria tampón operativos en respuesta a un mensaje que aparece en un puerto (10) para escribir el mensaje en la sección (13-C) de memoria tampón y, tras haberse completado la escritura del mensaje, para leer el mensaje desde la sección (13-C) de memoria tampón a un módulo de aplicación (12) en respuesta a una señal de control procedente del módulo de aplicación (12); medios de control FIFO (14-F) acoplados al o a cada puerto (10), la memoria (13), y el o cada módulo de aplicación (12), operativos en respuesta a un mensaje que aparece en un puerto (10) para escribir el mensaje en la sección FIFO (13-F) y y para leer el mensaje desde la sección FIFO (13-F) a un módulo de aplicación (12) o a otro puerto (10) sin esperar a que se haya completado la escritura del mensaje; permitiendo por tanto, dependiendo de las necesidades de un módulo de aplicación (12) y/o de la naturaleza del mensaje, que un mensaje recibido en un puerto (10) sea leído a otro puerto (10) sin esperar a que se haya completado la escritura del mensaje, o ser leído a un módulo de aplicación (12) bien tras haberse completado la escritura del mensaje o sin esperar a que se haya completado la escritura del mensaje.
Description
Gestión de memoria en un
receptor/descodifi-
cador.
cador.
La presente invención se refiere a un
receptor/descodificador, en particular a gestión de memoria en el
mismo y a transferencia de datos en el mismo. La invención
encuentra aplicación particular para la interfaz de programas de
aplicación a dispositivos físicos.
El término "receptor/descodificador" usado
aquí se puede referir a un receptor para recibir señales bien
codificadas o no codificadas, por ejemplo señales de televisión y/o
radio, que pueden ser radiodifundidas o transmitidas mediante otros
medios. El término se puede referir también a un descodificador
para descodificar señales recibidas. Las realizaciones de tales
receptores/descodificadores pueden incluir un descodificador de una
sola pieza con el receptor para descodificar las señales recibidas,
por ejemplo, en una "caja superpuesta para equipo",
funcionando un descodificador de este tipo en combinación con un
receptor físicamente separado, o incluyendo un tal descodificador
funciones adicionales, tales como un buscador de red, una grabadora
de vídeo, o una televisión.
En un sistema de radiodifusión de televisión
digital, las señales recibidas se hacen pasar a un
receptor/descodificador y de allí a un aparato de televisión. Tal
como se usa aquí, el término "sistema de televisión digital"
incluye por ejemplo cualquier sistema por satélite, terrestre, por
cable u otro. El receptor/descodificador descodifica una señal tipo
MPEG comprimida en una señal de televisión para el aparato de
televisión. El mismo es controlado mediante un microteléfono de
control remoto, a través de una interfaz en el
receptor/descodificador. El receptor/descodificador se usa para
procesar la corriente de bits de entrada, e incluye una variedad de
módulos de aplicaciones que ocasionan que el
receptor/descodificador efectúe una variedad de funciones de
control y otras.
Un receptor/descodificador de este tipo puede
tener una variedad de dispositivos conectados al mismo, tales como
una lectora de tarjetas para que el usuario pase a su través una
tarjeta de autorización para confirmar qué servicios el usuario
está autorizado a usar, un mando portátil de control del receptor,
una unidad de presentación de vídeo, y una segunda lectora de
tarjetas para su uso con tarjetas bancarias, para permitir al
usuario efectuar funciones de banca doméstica. El mismo puede tener
también una variedad de puertos acoplados a él, por ejemplo un
módem para acceso a Internet y para llevar a cabo transacciones de
banca doméstica.
Se ha propuesto proporcionar a un
receptor/descodificador la capacidad de interfaz con una variedad
de diferentes puertos, tales como un módem, un canal serie, un
canal paralelo, un canal MPEG (señal de vídeo comprimida y
codificada), lectoras de tarjetas por tiento, etcétera. El
receptor/descodificador incluye una máquina virtual que incluye un
motor de tiempo de ejecución. La máquina virtual está acoplada a un
gestor de dispositivos que está acoplado a su vez a las interfaces
físicas de los diversos canales a través de dispositivos y de
propulsores de dispositivos.
La presente invención se refiere más
particularmente a un receptor/descodificador que tiene uno o más
módulos de aplicaciones que están acoplados a uno o más puertos o
dispositivos a través de los cuales se puede hacer pasar
información a y desde los módulos de aplicaciones.
En general, los diversos puertos tienen
diferentes características, por ejemplo en velocidades de datos
(desde unos pocos bps (bits por segundo) para un mando portátil de
control de receptor a muchos Mbps (para una corriente de bits
MPEG)). Es por tanto usual prever un módulo de gestión de
dispositivos que de hecho forma una interfaz entre los módulos de
aplicaciones y los puertos. Esto permite simplificar los módulos de
aplicaciones.
Cuando un módulo de aplicación desea enviar
información, con frecuencia será capaz de controlar la velocidad de
transmisión y otros parámetros dependiendo de las condiciones en el
receptor/descodificador. Para la recepción de información, sin
embargo, la velocidad de transmisión será determinada con frecuencia
por condiciones externas. Por tanto, para evitar la pérdida de
información, el módulo de gestión de dispositivos incluirá
normalmente disposiciones de memoria tampón, de modo que la
información de entrada es memorizada en una memoria tampón hasta
que el módulo de aplicación receptor esté listo para aceptarla.
El módulo de gestión de dispositivos puede estar
convenientemente diseñado para definir o designar una variedad de
memorias tampón, permitiendo así disposiciones de comunicación
flexibles entre los módulos de aplicaciones, el módulo de gestión
de dispositivos, y los puertos.
El principio básico de la memorización tampón en
el receptor/descodificador es que una sección de memoria en una
memoria se designa como memoria tampón. Los datos de entrada
procedentes del puerto son alimentados a la memoria tampón, y el
módulo de aplicación lee la información desde la memoria tampón.
Dependiendo de las circunstancias, el tamaño de la memoria tampón
se puede elegir para que sea lo bastante grande para alojar la
mayoría de todos los mensajes de entrada, o la memoria tampón puede
ser operada cíclicamente, con dos punteros, uno para el punto en el
que nuevos datos de entrada son escritos en la memoria y el otro
para el punto en el que los datos memorizados son leídos desde la
memoria tampón. No es posible una comunicación independiente entre
dispositivos, y el sistema puede ser algo insensible, porque una
memoria tampón precisa ser llenada por un puerto antes de que los
datos puedan ser leídos desde dicha memoria tampón a otro
puerto.
El documento US 5.442.390 describe un sistema
para visualizar vídeos interactivamente, en el cual un vídeo
seleccionado es transmitido como una pluralidad de marcos para su
reproducción en un dispositivo de visualización. El sistema incluye
una memoria tampón para memorizar un segmento de un vídeo
seleccionado. La memoria tampón incluye un puntero de escritura y
un puntero de lectura. Están previstos servidores para escribir y
leer datos de vídeo del vídeo seleccionado a y desde la memoria
tampón, independientemente, en posiciones indicadas mediante los
punteros de escritura y lectura, para transferir el vídeo
seleccionado al dispositivo de visualización. Usando un controlador
remoto, el observador puede posicionar los punteros de lectura y
escritura para ver cualquier parte del vídeo seleccionado
interactivamente.
El principal objetivo de la presente invención es
proporcionar disposiciones de tratamiento de mensajes mejoradas en
sistemas del tipo anterior.
En consecuencia, la presente invención
proporciona un receptor/descodificador tal como se señala en la
reivindicación 1.
Éste puede permitir un paso eficiente del mensaje
de entrada a un módulo de aplicación con una interferencia mínima
con la operación del módulo de aplicación. De modo distinto a los
sistemas de memorización tampón anteriores, la transferencia de
datos está bajo control de medios de control FIFO, o controlador
FIFO, y no bajo control de una aplicación. Como la memoria incluye
adicionalmente una
sección de memoria tampón, y el receptor/desco-
dificador incluye además medios de control de memoria tampón, o un controlador de memoria tampón, operativo en respuesta a un mensaje que aparece en un puerto para escribir el mensaje en la sección de memoria tampón de la memoria y en respuesta a una señal de control procedente de un módulo de aplicación para leer el mensaje desde la memoria tampón al módulo de aplicación, esto puede permitir, por ejemplo, a una aplicación determinar si un mensaje recibido se ha de colocar bien en la sección FIFO o en la sección de memoria tampón, dependiendo de la naturaleza del mensaje.
sección de memoria tampón, y el receptor/desco-
dificador incluye además medios de control de memoria tampón, o un controlador de memoria tampón, operativo en respuesta a un mensaje que aparece en un puerto para escribir el mensaje en la sección de memoria tampón de la memoria y en respuesta a una señal de control procedente de un módulo de aplicación para leer el mensaje desde la memoria tampón al módulo de aplicación, esto puede permitir, por ejemplo, a una aplicación determinar si un mensaje recibido se ha de colocar bien en la sección FIFO o en la sección de memoria tampón, dependiendo de la naturaleza del mensaje.
Los medios de control FIFO están dispuestos
preferiblemente para iniciar la lectura de un mensaje desde la
sección FIFO de la memoria a dicha aplicación o a dicho otro puerto
antes de que se haya completado la recepción del mensaje. De este
modo se puede mantener un flujo continuo de datos desde un puerto,
o dispositivo, a otro puerto, o dispositivo. Por ejemplo, los
datos recibidos desde un dispositivo fuente MPEG pueden ser
enviados directamente a un dispositivo de vídeo sin entrada alguna
desde una aplicación.
Los medios de control FIFO pueden estar
dispuestos para borrar un mensaje procedente de la sección FIFO.
Esto puede permitir que el procesamiento del flujo de información
se mantenga en caso de desbordamiento de capacidad en la sección
FIFO.
Los medios de control FIFO incluyen
preferiblemente medios de detector de ocupación, o un detector de
ocupación, para detectar el estado de ocupación de la sección FIFO.
Los medios de detector de ocupación pueden detectar desbordamiento
de capacidad y desbordamiento de capacidad mínima de la sección
FIFO, y pueden además detectar al menos un umbral de desbordamiento
de capacidad y desbordamiento de capacidad mínima inminente de la
sección FIFO. Esto puede permitir al controlador FIFO enviar
mensajes de control apropiados a la fuente del mensaje que está
siendo recibido por la sección FIFO y/o al destino del mensaje que
está siendo recibido por la sección FIFO.
La sección FIFO puede comprender una pluralidad
de memorias tampón FIFO, y los medios de control FIFO pueden
comprender una pluralidad respectiva de medios de control de
registros FIFO, o controladores de registros FIFO.
La sección de memoria tampón puede comprender dos
áreas de memoria tampón definidas mediante registros de memoria
tampón respectivos en los medios de control de memoria tampón. Esto
puede permitir al controlador de memoria tampón bascular mensajes
entre las dos áreas de memoria tampón.
Los medios de control de memoria tampón pueden
ser operables en un modo de corriente de bits en el que una
corriente de bits de entrada es dirigida al área de memoria tampón
seleccionada actualmente, y es a continuación conmutada entre las
dos áreas de memoria tampón a medida que cada área de memoria
tampón queda llena a su vez. Los medios de control de memoria
tampón pueden ser operables además en un modo de esquema de datos
en el que la longitud de un mensaje de entrada se compara con el
espacio libre en el área de memoria tampón seleccionada
actualmente, y si dicho espacio es menor que la longitud del
mensaje, se selecciona el otro área de memoria tampón.
El receptor/descodificador puede incluir además
una unidad de aplicación del dispositivo de vídeo alimentada desde
la sección FIFO y que alimenta a una unidad de chip de vídeo que es
alimentada también con una corriente de bits de vídeo.
La presente invención se extiende también a un
sistema de radiodifusión que comprende un receptor/descodificador
tal como se ha mencionado más arriba y medios para transmitir
mensajes al receptor/descodificador.
Diversas funciones del receptor/descodificador
pueden ser implementadas en hardware (equipo físico), por ejemplo
en un circuito integrado dedicado; esto puede proporcionar una
velocidad de operación aumentada. Preferiblemente, sin embargo, al
menos algunas de las funciones son implementadas en software
(soporte lógico), ejecutado preferiblemente mediante los medios de
procesamiento que ejecutan las aplicaciones; esto permite mayor
flexibilidad, requiere menos componentes, y permite que el
receptor/descodificador sea actualizado más fácilmente.
Se describirá ahora un receptor/descodificador
que pone en práctica la invención, a título de ejemplo, haciendo
referencia a los dibujos, en los que:
Figura 1 es un diagrama esquemático de las
interfaces del receptor/descodificador;
Figura 2 es un diagrama funcional de bloques del
receptor/descodificador;
Figura 3 es un diagrama de bloques simplificado
del sistema de gestión de mensajes en el
receptor/descodificador;
Figura 3A es un diagrama de bloques más detallado
del sistema de gestión de mensajes que muestra el
sub-sistema de memoria tampón;
Figura 3B es un diagrama de bloques más detallado
del sistema de gestión de mensajes que muestra el
sub-sistema FIFO;
Figura 4A es un diagrama simplificado de una
unidad de registro de memoria tampón;
Figura 4B es un diagrama simplificado de una
unidad de registro FIFO; y
Figura 5 es un diagrama de bloques que muestra
cómo el sistema de tratamiento de mensajes puede interactuar con la
corriente de bits MPEG principal.
Haciendo referencia a Figura 1, se representa
esquemáticamente un receptor/descodificador 2020 o caja superpuesta
para equipo, para uso en un sistema de televisión interactivo
digital. Detalles de un sistema de televisión interactivo digital
apropiado se pueden encontrar en nuestras Solicitudes
PCT/EP97/02106 - 02117, en tramitación junto con la presente. Para
mayor comodidad de referencia, las partes descritas en mayor
detalle en las memorias descriptivas arriba mencionadas se designan
generalmente mediante los números de referencia usados en dichas
memorias descriptivas.
Tal como se describe en mayor detalle en las
memorias descriptivas arriba mencionadas, haciendo referencia a
Figuras 1 y 2, el receptor/descodificador 2020 incluye varios
puertos; específicamente, un sintonizador 4028 para el flujo de
señales MPEG, una interfaz serie 4030, una interfaz paralelo 4032,
y dos lectoras 4036 de tarjetas, una para una tarjeta inteligente
que forma parte del sistema y una para tarjetas bancarias (usadas
para hacer pagos, para banca doméstica, etc.). El
receptor/descodificador incluye también una interfaz 4034 para un
canal de retorno 4002 dotado de módem al productor de la señal de
televisión, de modo que el usuario puede indicar preferencias, etc.
como realimentación al productor de la señal (programa) de
televisión. El receptor/descodificador incluye también un motor de
tiempo de ejecución 4008, un gestor 4068 de dispositivos y una
pluralidad de dispositivos 4062 y propulsores 4060 de dispositivos
para ejecutar una o más aplicaciones 4056.
En esta descripción, una aplicación es una parte
de código de ordenador para controlar funciones de alto nivel de
preferiblemente el receptor/descodificador 2020. Por ejemplo, cuando
el usuario final posiciona el foco de un controlador remoto sobre
un objeto botón visto en la pantalla del aparato de televisión 2022
y presiona una tecla de validación, se ejecuta la secuencia de
instrucciones asociada con el botón.
Una aplicación interactiva propone menús y
ejecuta órdenes a petición del usuario final, y proporciona datos
relacionados con la finalidad de la aplicación. Las aplicaciones
pueden ser bien aplicaciones residentes, es decir memorizadas en la
ROM (o FLASH u otra memoria no volátil) del receptor/descodificador
2020, o radiodifundidas y descargadas a la memoria RAM o FLASH del
receptor/descodificador 2020.
Las aplicaciones son memorizadas en posiciones de
memoria en el receptor/descodificador 2020 y representadas como
archivos de recursos. Los archivos de recursos comprenden archivos
de unidades de descripción de objetos gráficos, archivos de
unidades de bloques variables, archivos de secuencias de ins-
trucciones, archivos de aplicaciones y archivos de datos, tal como se describe en mayor detalle en las memorias descriptivas de las Patentes arriba mencionadas.
trucciones, archivos de aplicaciones y archivos de datos, tal como se describe en mayor detalle en las memorias descriptivas de las Patentes arriba mencionadas.
El receptor/descodificador contiene memoria
dividida en un volumen RAM, un volumen FLASH y un volumen ROM, pero
esta organización física es distinta de la organización lógica. La
memoria puede estar dividida además en volúmenes de memoria
asociados con las diversas interfaces. Desde un punto de vista, la
memoria se puede considerar como pare del hardware; desde otro
punto de vista, la memoria se puede considerar como soportando o
conteniendo el conjunto del sistema mostrado por separado del
hardware.
El receptor/descodificador se puede considerar
como centrado sobre un motor de tiempo de ejecución 4008 que forma
parte de una máquina virtual 4007. Ésta está acoplada a
aplicaciones por un lado (el lado "de alto nivel"), y por el
otro lado (el lado "de bajo nivel"), a través de diversas
unidades lógicas intermedias descritas más abajo, al hardware 4061
del receptor/descodificador. El hardware del
receptor/descodificador se puede considerar que incluye los
diversos puertos tal como se ha descrito más arriba (la interfaz
4030 para el microteléfono 2026, la interfaz 4028 de corriente
MPEG, la interfaz serie 4030, la interfaz paralelo 4032, las
interfaces 4036 para las lectoras de tarjetas, y la interfaz 4034
para el canal de retorno 4002 dotado de módem).
Haciendo referencia específicamente a Figura 2,
diversas aplicaciones 4056 están acopladas a la máquina virtual
4007; algunas de las aplicaciones usadas más comúnmente pueden ser
residentes más o menos permanentemente en el sistema, tal como se
indica en 4057, mientras que otras serán descargadas al sistema, por
ejemplo desde la corriente de datos MPEG o desde otros puertos,
según se requiera.
La máquina virtual 4007 incluye, además del motor
de tiempo de ejecución 4008, algunas funciones de biblioteca
residente 4006 que incluyen una caja de herramientas 4058. La
biblioteca contiene funciones misceláneas en lenguaje C usadas por
el motor 4008. Éstas incluyen estructuras de manipulación de datos
tales como compresión, expansión o comparación de datos, dibujo de
líneas, etc. La biblioteca 4006 incluye también información sobre
software de empresa en el receptor/descodificador 2020, tal como
números de versión de hardware y software y espacio RAM disponible,
y una función usada al descargar un nuevo dispositivo 4062. Las
funciones pueden ser descargadas a la biblioteca, siendo
memorizadas en memoria FLASH o RAM.
El motor de tiempo de ejecución 4008 está
acoplado a un gestor 4068 de dispositivos que está acoplado a un
juego de dispositivos 4062 que están acoplados a propulsores 4060
de dispositivos que están acoplados a su vez a los puertos o
interfaces. En términos amplios, un propulsor de dispositivo se
puede considerar que define una interfaz lógica, de modo que dos
propulsores de dispositivos diferentes pueden estar acoplados a un
puerto físico común. Un dispositivo estará acoplado normalmente a
más de un propulsor de dispositivo; si un dispositivo está acoplado
a un único propulsor de dispositivo, el dispositivo estará diseñado
normalmente para incorporar la plena funcionalidad requerida para
la comunicación, por lo que se obvia la necesidad de un propulsor
de dispositivo separado. Ciertos dispositivos pueden comunicar
entre ellos.
Tal como se describirá más abajo, hay 3 formas de
comunicación ascendente desde los dispositivos 4062 al motor de
tiempo de ejecución: por medio de variables, memorias tampón, y
eventos que se hacen pasar a un juego de colas de eventos.
Cada función del receptor/descodificador 2020 se
representa como un dispositivo 4062. Los dispositivos pueden ser
bien locales o remotos. Los dispositivos locales 4064 incluyen
tarjetas inteligentes, señales de conectores SCART, módems,
interfaces serie y paralelo, un reproductor de vídeo y audio MPEG y
un extractor de secciones y tablas MPEG. Los dispositivos remotos
4066, ejecutados en un lugar remoto, difieren de los dispositivos
locales en que un puerto y dispositivo deben ser definidos por la
autoridad o el diseñador del sistema, en lugar de por un
dispositivo y propulsor del dispositivo proporcionados y diseñador
por el fabricante del receptor/descodificador.
El motor de tiempo de ejecución 4008 funciona
bajo el control del microprocesador y una interfaz de programación
de aplicaciones común. Éstos están instalados en cada
receptor/descodificador 2020, por lo que todos los
receptores/descodificadores 2020 son idénticos desde el punto de
vista de las aplicaciones.
El motor 4008 ejecuta aplicaciones 4056 sobre el
receptor/descodificador 2020. El mismo ejecuta aplicaciones
interactivas 4056 y recibe eventos desde fuera del
receptor/descodificador 2020, presenta gráficos y texto, llama a
dispositivos solicitando servicios y usa funciones de la biblioteca
4006 conectada al motor 4008 para cálculos específicos.
El motor de tiempo de ejecución 4008 es un código
ejecutable instalado en cada receptor/descodificador 2020 e incluye
un intérprete para interpretar y ejecutar aplicaciones. El motor
4008 es adaptable a cualquier sistema operativo, incluyendo un
sistema operativo de tarea única (por ejemplo
MS-DOS). El motor 4008 se basa en unidades
secuenciadoras de procesos (que toman diversos eventos, tales como
un prensado de tecla, para llevar a cabo diversas acciones) y
contiene su propio planificador para gestionar colas de eventos
procedentes de las diferentes interfaces del hardware. El mismo
trata también la presentación de gráficos y texto. Una unidad
secuenciadora de procesos comprende un juego de grupos de acciones.
Cada evento ocasiona que la unidad secuenciadora de procesos se
mueva desde su grupo de acciones actual a otro grupo de acciones
dependiendo del carácter del evento, y para ejecutar las acciones
del nuevo grupo de acciones.
El motor 4008 comprende un cargador de códigos
para cargar y descargar aplicaciones 4056 a la memoria del
receptor/descodificador. Sólo el código necesario es cargado en la
memoria RAM o FLASH, al objeto de asegurar su uso óptimo. Los datos
descargados son verificados mediante un mecanismo de autenticación
para impedir cualquier modificación de una aplicación 4056 o la
ejecución de cualquier aplicación no autorizada. El motor 4008
comprende además un descompresor. Como el código de aplicación (una
forma de código intermedio) es comprimido para ahorrar espacio y
para mayor rapidez de descarga desde la corriente MPEG o por medio
de un modo receptor/descodificador integrado, el código debe ser
descomprimido antes de cargarlo en la RAM. El motor 4008 comprende
también un intérprete para interpretar el código de aplicación para
actualizar diversos valores variables y determinar cambios de
estatus, y un comprobador de errores.
Antes de usar los servicios de cualquier
dispositivo 4062, un programa (por ejemplo, una secuencia de
instrucciones de aplicación) debe ser declarado como un
"cliente", es decir, una vía de acceso lógico al dispositivo
4062 o al gestor 4068 de dispositivos. El gestor da al cliente un
número de cliente al que se hace referencia en todos los accesos al
dispositivo. Un dispositivo 4062 puede tener varios clientes,
siendo el número de clientes para cada dispositivo 4062
especificado dependiendo del tipo de dispositivo 4062. Un cliente
es introducido al dispositivo 4062 mediante un procedimiento
"Dispositivo: abrir canal". Ese procedimiento asigna un número
de cliente al cliente. Un cliente puede ser sacado fuera de la
lista de clientes del gestor 4068 de dispositivos mediante un
procedimiento: "Dispositivo: cerrar canal".
El acceso a dispositivos 4062 proporcionado por
el gestor 4068 de dispositivos puede ser bien sincrónico o
asincrónico. Para el acceso sincrónico se usa un procedimiento
"Dispositivo: llamar". Éste es un medio de acceso a datos que
está disponible inmediatamente o una funcionalidad que no implica
espera para la respuesta deseada. Para el acceso asincrónico se usa
un procedimiento "Dispositivo: I/O". Éste es un medio de
acceso a datos que implica esperar para una respuesta, por ejemplo
explorando frecuencias de sintonizador para encontrar un multiplex
o recuperando una tabla desde la corriente MPEG. Cuando el
resultado solicitado está disponible, se pone un evento en la cola
del motor para indicar su llegada. Otro procedimiento
"Dispositivo: evento" proporciona un medio para gestionar
eventos inesperados.
Tal como se ha señalado más arriba, el bucle
principal del motor de tiempo de ejecución está acoplado a una
variedad de unidades secuenciadoras de procesos, y cuando el bucle
principal encuentra un evento apropiado, el control se transfiere
temporalmente a una de las unidades secuenciadoras de procesos.
Así pues, puede apreciarse que el
receptor/descodificador proporciona una plataforma que tiene una
flexibilidad considerable para permitir a una aplicación comunicar
con una variedad de dispositivos.
Para los fines presentes, dispositivos y puertos
son equivalentes. Los módulos de aplicaciones necesitan transmitir
y recibir información; dicha comunicación puede ser con
dispositivos (que son generalmente locales y estrechamente
acoplados al sistema de gestión de memoria tampón), o con puertos
(que están generalmente acoplados a fuentes de información que son
remotas y/o independientes del sistema). El término "puerto"
se usará de aquí en adelante para incluir dispositivos.
Haciendo referencia ahora a Figura 3, el
receptor/descodificador comprende una pluralidad de unidades de
puertos 10, 10', 10'' acopladas por medio de un enlace común de
datos 20 y un enlace común de control 21 a un módulo 11 de gestión
de dispositivos, que está acoplado a su vez por medio de un enlace
común de datos 22 y un enlace común de control 23 a una pluralidad
de módulos de aplicaciones 12, 12', 12''. El módulo 11 de gestión
de dispositivos está acoplado también por medio de un enlace común
de datos 24, un enlace común de direcciones 25 y un enlace común de
control 26 a una memoria 13.
Los mensajes que pasan entre los puertos y las
aplicaciones pueden pasar a través bien de memorias tampón o de
FIFOs (unidades de memoria primero en entrar - primero en salir).
La memoria 13 contiene dos áreas, 13-B y
13-F de memoria, para memorias tampón y FIFOs
respectivamente, y el módulo 11 de gestión de dispositivos contiene
dos controladores, 14-B y 14F respectivamente, para
controlar el paso de mensajes a través de las memorias tampón
13-B y de las FIFOs 13-F
respectivamente.
Memorias tampón y FIFOs son establecidas y
tratadas básicamente de la misma manera. Una memoria tampón o una
FIFO es establecida mediante una orden que define sus
características (posición de memoria, tamaño, etc.) y puede ser
borrada de modo similar. Una vez que una memoria tampón o una FIFO
ha sido establecida, puede ser usada seguidamente por puertos y
aplicaciones mediante el uso de los procedimientos descritos más
arriba.
Considerando en primer lugar el tratamiento de
los mensajes que pasan a través de los registros de memoria tampón,
la memoria tampón 13-B incluye dos áreas 30 y 31 de
memoria tampón (Figura 3A), que están definidas mediante unidades
de registros 32 y 33 de memoria tampón respectivas en una unidad de
control 34 de direcciones de memoria tampón en el controlador
14-B de memoria tampón en el módulo 11 de gestión
de dispositivos. El controlador de memoria tampón en el módulo de
gestión de dispositivos contiene también una unidad de control 35
que controla la unidad de control 34 de direcciones de memoria
tampón. Un enlace común de datos 36 acopla todas las vías para
datos conjuntamente en el módulo 11 de gestión de dispositivos.
Haciendo referencia a Figura 4A, cada una de las
unidades de registros de memoria tampón contiene cierto número de
registros de direcciones 32-1,
32-2,... 32-n. Estos registros
incluyen un registro superior 32-1 y un registro
inferior 32-n, que están predeterminados y definen
el extremo superior y el extremo inferior del área de memoria
tampón respectiva en la memoria 13, y un registro de puntero 32'
que apunta al punto en el área de memoria tampón en la que han de
ser escritos los datos de entrada. (Por tanto, el registro de
puntero 32' apunta a la frontera, en el área de memoria tampón,
entre la parte que contiene datos y la parte que está vacía.)
Las diversas unidades de puertos 10, 10', 10''
pueden iniciar mensajes a los diversos módulos de aplicaciones 12,
12', 12'' que se han de hacer pasar a través de los registros de
memoria tampón 13-B. Estos mensajes pueden ser de
dos tipos básicos, corrientes de datos y esquemas de datos. La
distinción entre estos dos tipos de mensajes es que una corriente
de bits es un mensaje de longitud no definida, mientras que un
esquema de datos es un mensaje de longitud predeterminada. El tipo
de mensaje puede ser determinado por la fuente del mensaje (tal
como se indica mediante las señales de control que acompañan al
mensaje), o por una cabecera del mensaje (tal como es controlada
por la unidad del control 35 desde el enlace común de datos 36).
Algunas unidades de puertos pueden ser capaces de
iniciar ambos tipos de mensajes; otras pueden ser capaces de
iniciar uno u otro tipo. Cuando un puerto 10 quiere iniciar un
mensaje, el módulo 11 de gestión de dispositivos selecciona ese
puerto 10 y el módulo de aplicación 12 apropiado de manera
convencional.
La unidad de control 35 tiene dos modos de
operación, dependiendo de si el mensaje de entrada es una corriente
de bits o un esquema de datos.
La unidad de control 35 incluye un elemento
selector binario o circuito biestable 37 que selecciona cuál de las
dos áreas 30, 31 de memoria tampón ha de ser usada. Para una
corriente de bits, la unidad de control 35 dirige la corriente de
bits de entrada al área 30 de memoria tampón seleccionada
actualmente hasta que ésta se llena. En ese momento, la unidad de
control 35 cambia el estado del elemento selector 37 para
seleccionar la otra área 31 de memoria tampón, y dirige la
corriente de datos a esa área de memoria tampón hasta que esa área
de memoria tampón se llena. El mismo selecciona entonces nuevamente
el área 30 de memoria tampón, y continúa conmutando o basculando
entre las dos áreas de memoria tampón hasta que termina la
corriente de bits.
Se ha dicho más arriba que la unidad de control
35 selecciona una de las áreas 30, 31 de memoria tampón, dirige la
corriente de bits de entrada a esa área 30 de memoria tampón, y
así sucesivamente, pero por supuesto se apreciará que esta
afirmación lo es en términos simplificados. En mayor detalle, la
unidad de control 35 selecciona de hecho una de las dos unidades de
registros 32, 33 de direcciones de memoria tampón, usa el registro
de puntero 32' en la unidad 32 seleccionada para seleccionar las
direcciones en el área de memoria tampón en las cuales son escritos
los datos de entrada, y bascula entre las dos unidades de registros
32, 33 de direcciones de memoria tampón según sea apropiado.
La unidad de control 35 informa también al módulo
de aplicación 12 de que se está recibiendo la corriente de bits. Se
supone que el módulo de aplicación 12 lee el mensaje, parte por
parte, desde las dos áreas 30, 31 de memoria tampón
alternativamente, de modo que las áreas de memoria tampón no se
sufren desbordamiento de capacidad (es decir, que los datos ya en
las áreas de memoria tampón son leídos por el módulo de aplicación
antes de que nuevos datos que entran como parte de la corriente de
bits sean escritos sobre los datos antiguos). El módulo de
aplicación 12 puede mantener uno o más registros de direcciones
para esta lectura, o puede estar previsto un registro de dirección
adicional en cada una de las unidades de registros 32, 33 de
direcciones de memoria tampón para este fin. Cuando se ha
completado la lectura del mensaje memorizado, los registros de
direcciones de punteros en las unidades de registros 32, 33 de
di-
recciones de memoria tampón son restaurados.
recciones de memoria tampón son restaurados.
Para un esquema de datos, la unidad de control 35
determina la longitud del esquema de datos, e interroga a la unidad
de registro de dirección de memoria tampón seleccionada actualmente
para determinar cuánto espacio hay disponible en ella. Este valor
del espacio libre se obtiene determinando las diferencias entre los
valores en los registros de direcciones superior y de puntero. La
unidad de control compara entonces el valor del espacio libre con
la longitud del esquema de datos, y si la longitud del esquema de
datos es mayor que el valor del espacio libre, cambia el estado del
elemento selector 37 para seleccionar la otra área de memoria
tampón.
Si, en el modo de corriente de bits, el mensaje
de entrada desborda la capacidad de las áreas 30, 31 de memoria
tampón, o si, en el modo de esquema de datos, ningún área de memoria
tampón tiene espacio libre suficiente para aceptar el mensaje de
entrada, el sistema entra entonces en un modo de fallo en el que se
inhibe o aborta la recepción del mensaje. Se puede entonces tomar
una acción de recuperación apropiada, por ejemplo, solicitando la
retransmisión del mensaje si ello es posible, o restaurando el
sistema al estado en el que estaba antes de que comenzara la
recepción del mensaje.
Así pues, para una corriente de bits, el mensaje
de entrada es dirigido a aquella área de memoria tampón que esté
seleccionada actualmente, y si el mensaje de entrada desborda la
capacidad de esa área, el mismo es conmutado automáticamente a la
otra área de memoria tampón, repitiéndose la conmutación entre las
dos áreas de memoria tampón si es necesario. Con un esquema de
datos, sin embargo, el mensaje de entrada completo es dirigido a
una única área de memoria tampón.
Esto permite aceptar con éxito mensajes de
entrada de longitudes tanto arbitrarias como conocidas, con una
organización relativamente sencilla de los registros de memoria
tampón.
Las memorias tampón se pueden usar también más
generalmente para la transmisión de mensajes entre
aplicaciones.
Volviendo ahora al tratamiento de mensajes que
pasan a través de las FIFOs, la memoria tampón 13-F
incluye un juego de FIFOs 40 (Figura 3B), que están definidas
mediante unidades de registros FIFO 41 respectivas en el
controlador FIFO 14-F en el módulo 11 de gestión de
aplicaciones. Los datos pasan a y desde las FIFOs 40 a través del
enlace común de datos 24, que está acoplado al enlace común de
datos 36 (Figura 3A). El controlador FIFO 14-F en
el módulo de gestión de dispositivos incluye también un juego de
unidades de control FIFO 43, que controlan la escritura de mensajes
en las FIFOs 40 y la lectura de dichos mensajes desde las
FIFOs.
Haciendo referencia a Figura 4B, cada una de las
unidades de registros FIFO 41 contiene cierto número de registros
de direcciones 42-1, 42-2, ...
42-n. Estos registros incluyen un registro superior
42-1 y un registro inferior 42-n,
que están predeterminados y definen el extremo superior y el
extremo inferior del área FIFO respectiva en la memoria 13, un
registro de puntero de escritura 42-3 que apunta al
punto en el área FIFO en la que han de ser escritos los datos de
entrada, y un registro de puntero de lectura 42-2
que apunta al punto en el área FIFO desde la que han de ser leídos
los datos ya memorizados.
Considerando generalmente el gestor de
dispositivos, por tanto, los mensajes se pueden hacer pasar desde
puertos a aplicaciones, desde aplicaciones a puertos, y entre
aplicaciones, usando bien memorias tampón o FIFOs.
El uso de memorias tampón es controlado mediante
aplicaciones de nivel superior. El sistema se basa en eventos; es
decir, cuando un mensaje está siendo pasado a una aplicación de
nivel superior, la aplicación espera a la recepción de un mensaje
"memoria tampón lista" desde el gestor 14-B de
memorias tampón antes de tomar acción alguna tendente a leer el
contenido de la memoria tampón. Con esta disposición, no es posible
una comunicación independiente entre puertos. Además, el sistema
puede ser algo insensible, porque una memoria tampón ha de ser
llenada por un puerto antes de que otro puerto pueda leer su
contenido.
Con FIFOs, el uso es controlado por las unidades
de control FIFO 43 en el controlador u operador FIFO
14-F. La información es escrita en una FIFO 40 y
leída desde ella bajo el control del operador FIFO
14-F, que incluye la correspondiente unidad de
control FIFO 43. La transferencia de datos se encuentra por tanto
bajo el control del operador FIFO 14-F en lugar de
ser controlada por la aplicación 12. Una corriente de información
puede fluir por tanto directamente entre dos puertos 10, así como
entre un puerto 10 y una aplicación 12.
Los datos son escritos en la FIFO 40 y leídos
desde ella usando los punteros de escritura y lectura
42-1 y 42-2. Estos punteros son
controlados por el operador FIFO 14-F. Esto permite
que la lectura y escritura de la FIFO 40 se lleven a cabo
independientemente. Es decir, el puerto 10 o aplicación 12 no tiene
que tener información alguna referente al origen del mensaje que
está siendo leído desde la FIFO 40. La lectura de información desde
la FIFO 40 se puede iniciar antes de que la FIFO 40 esté llena o
antes de que el mensaje haya sido recibido y escrito en la FIFO 40
por completo. Esto permite conseguir un flujo de información
sustancialmente continuo. La lectura de información desde la FIFO
40 no precisa ser continua; la lectura se puede detener y reiniciar
en cualquier momento.
El operador FIFO 14-F comprueba
si la información que está siendo escrita en la FIFO 40 comienza en
la dirección inferior FIFO y no va más allá de la dirección
superior FIFO. La manera precisa en que es operada una FIFO 40
puede depender del uso particular que se haga de ella. Así pues,
una FIFO 40 puede ser operada sobre una base de mensaje único,
siendo el inicio de cada mensaje escrito en la dirección inferior
FIFO. Alternativamente, una FIFO 40 puede ser operada cíclicamente,
siendo el inicio de un nuevo mensaje escrito inmediatamente encima
del final del mensaje anterior, y tratándose el extremo superior y
el extremo inferior de la FIFO como contiguos.
Si los mensajes son más largos que la longitud de
la FIFO 40 o un mensaje comienza a llegar antes de que el mensaje
anterior haya sido leído por completo desde la FIFO 40, hay un
peligro potencial de conflicto. Las unidades de control FIFO 43
controlan para evitar dicho conflicto. En el caso de que se detecte
un conflicto, la unidad de control FIFO 43 puede por supuesto
enviar una señal de control apropiada a la fuente del mensaje (por
ejemplo, un puerto 10), al destino del mensaje (por ejemplo, una
aplicación 12), o a ambos.
Aparece un conflicto real si el registro de
puntero de escritura 42-3 alcanza al registro de
puntero de lectura 42-4, o si el registro de
puntero de lectura 42-4 alcanza al registro de
puntero de escritura 42-3. Sin embargo, la unidad de
control FIFO 43 puede estar dispuesta para detectar potenciales
conflictos, a saber, si el registro de puntero de escritura
42-3 se aproxima dentro de cierta distancia al
registro de puntero de lectura 42-4 o viceversa. El
módulo 11 de gestión de dispositivos puede ajustar estas distancias
(umbrales) para las unidades de control FIFO 43. Los umbrales de
desbordamiento de capacidad y de desbordamiento de capacidad mínima
para una FIFO 40 no precisan ser iguales. También es posible que
haya dos o más umbrales de desbordamiento de capacidad y/o de
desbordamiento de capacidad mínima, para proporcionar avisos
progresivamente más urgentes al aproximarse un desbordamiento de
capacidad o desbordamiento de capacidad mínima real.
Además, la unidad de control FIFO 43 puede
contener una bandera que es ajustable, en caso de desbordamiento de
capacidad, bien para permitir una sobre-escritura o
para suspender una posterior escritura. La primera efectivamente
borra información antigua de la FIFO 40. Tal barrido será con
frecuencia deseable, para permitir el procesamiento continuado del
flujo de información.
Una unidad de control FIFO 43 se puede considerar
como una aplicación de bajo nivel (o en ciertos casos como un
dispositivo) que efectúa funciones de transferencia por cuenta de
una aplicación de alto nivel. La aplicación de alto nivel es
liberada de las funciones de transferencia, y los mensajes que
están siendo transmitidos son de hecho suministrados
automáticamente a la aplicación de alto nivel, que puede usarlos
directamente sin tener que ocupase ella misma de obtenerlos.
Figura 5 muestra cómo las FIFOs se pueden usar
para generar señales de vídeo que son combinadas con las señales de
vídeo de la corriente de bits MPEG principal. El sistema de
tratamiento de mensajes de Figuras 3, 3B y 4B se usa para dirigir
datos recibidos desde un dispositivo fuente MPEG directamente a un
dispositivo de vídeo, sin necesidad de entrada alguna desde la
aplicación de alto nivel.
Una corriente de bits MPEG (que será normalmente
la corriente de bits recibida desde el sintonizador 4028, Figura 1)
es alimentada, por la línea 50, a un
des-multiplexor 51 que está acoplado a un
dispositivo de servicio 52. La función del dispositivo 52 es
establecer el vídeo; es decir, obtener información sobre el
establecimiento del vídeo principal y controlar su presentación. El
des-multiplexor 51 es controlado para extraer la
secuencia de vídeo principal (secuencia de vídeo PID) desde la
corriente de bits de vídeo MPEG. Esta secuencia de vídeo principal
es alimentada por la línea 53 a un chip MPEG-2
54.
Además, las corrientes de bits
MPEG-2 de vídeo pueden ser extraídas desde una o
más de las FIFOs 40, por las líneas 55. Estas corrientes de bits se
hacen pasar a un dispositivo de vides 56, que está acoplado a la
señal de vídeo principal por la línea 53. Las corrientes de bits
por las líneas 55 son procesadas por el dispositivo de vídeo 56 y
emergen como secuencias de vídeo auxiliares, por las líneas 57, que
son alimentadas al chip MPEG-2 54. Las secuencias
de vídeo son presentadas solamente en la capa MPEG.
Cada secuencia de vídeo de la capa MPEG tiene su
propio coeficiente de mezclado alfa, que se aplica a cada pixel de
la imagen para su combinación con el pixel correspondiente de la
capa de fondo. Las partes de la capa MPEG que no se usan son
completamente transparentes.
Los detalles precisos de la implementación de las
diversas funciones descritas más arriba, y su distribución entre
hardware y software, son un asunto de elección para el
implementador y no se describirán en detalle. Se señala, sin
embargo, que los circuitos integrados dedicados capaces de efectuar
las operaciones requeridas en el receptor/descodificador están
disponibles comercialmente o pueden ser diseñados fácilmente, y los
mismos se pueden usar como base para un acelerador en hardware, o
más preferiblemente modificados para producir un acelerador en
hardware dedicado, para implementar varias de las operaciones
requeridas, reduciendo por tanto la potencia de procesamiento
requerida para ejecutar el software. Sin embargo, las operaciones
requeridas se pueden implementar en software si hay disponible
potencia de procesamiento suficiente.
Los módulos y otros componentes se han descrito
en términos de las propiedades y funciones proporcionadas por cada
componente, junto con propiedades opcionales y preferibles. Con la
información dada y las especificaciones proporcionadas, la
implementación real de estas propiedades debería ser inmediata para
el experto en la técnica, y los detalles precisos se dejan al
implementador. Como un ejemplo, ciertos módulos podrían ser
implementados en software, preferiblemente escritos en lenguaje de
programación C y preferiblemente compilados para ejecución en el
procesador usado para ejecutar la aplicación; sin embargo, algunos
componentes pueden ser ejecutados en un procesador separado, y
algunos o todos los componentes pueden ser implementados mediante
hardware dedicado.
Los módulos y componentes anteriores son
meramente ilustrativos, y la invención se puede implementar de una
variedad de maneras, y en particular algunos componentes pueden ser
combinados con otros que efectúan funciones similares, o algunos se
pueden omitir en implementaciones simplificadas. Implementaciones
en hardware y software de cada una de las funciones se pueden
combinar libremente, tanto entre componentes como dentro de un
único componente.
Se entenderá fácilmente que las funciones
efectuadas por el hardware, el software del ordenador, y similares,
son efectuadas por o usando señales eléctricas y similares. Las
implementaciones en software pueden ser memorizadas en ROM, o
pueden ser insertadas en FLASH.
Para resumir la realización preferente de la
presente invención, se proporciona un módulo 11 de gestión de
dispositivos particularmente para su uso en un
receptor/descodificador para un sistema de radiodifusión de
televisión digital en el que las señales recibidas se hacen pasar a
través de un receptor al receptor/descodificador y de aquí a un
aparato de televisión. El módulo 11 acopla señales de entrada
procedentes de unidades de puertos 10 a módulos de aplicaciones 12.
Una memoria 13 acoplada al módulo 11 tiene un área
13-B de memoria tampón y un área FIFO
13-F, controladas mediante un controlador/operador
14-B de memoria tampón y un controlador/operador
FIFO 14-F respectivamente. Un mensaje de entrada se
puede hacer pasar a una memoria tampón, y recuperar desde la
memoria tampón por la aplicación a la que está dirigido; hay
disponibles para ello dos modos de operación diferentes.
Alternativamente, un mensaje de este tipo se puede hacer pasar a
una FIFO; el operador FIFO actúa como una aplicación de bajo nivel
que puede pasar el mensaje a una aplicación de alto nivel sin que
esa aplicación tenga que tomar acción alguna y sin tener que
esperar a que se haya recibido el mensaje completo. Los mensajes
que pasan a través del área FIFO pueden ser combinados en una
corriente de señales MPEG.
Claims (11)
1. Receptor/descodificador que comprende:
al menos un puerto (10) para recibir
mensajes;
al menos un módulo de aplicación (2);
una memoria (13) que incluye una sección
(13-C) de memoria tampón y una sección FIFO
(13-F);
medios de control (14-B) de
memoria tampón operativos en respuesta a un mensaje que aparece en
un puerto (10) para escribir el mensaje en la sección
(13-C) de memoria tampón y, tras haberse completado
la escritura del mensaje, para leer el mensaje desde la sección
(13-C) de memoria tampón a un módulo de aplicación
(12) en respuesta a una señal de control procedente del módulo de
aplicación (12);
medios de control FIFO (14-F)
acoplados al o a cada puerto (10), la memoria (13), y el o cada
módulo de aplicación (12), operativos en respuesta a un mensaje que
aparece en un puerto (10) para escribir el mensaje en la sección
FIFO (13-F) y para leer el mensaje desde la sección
FIFO (13-F) a un módulo de aplicación (12) o a otro
puerto (10) sin esperar a que se haya completado la escritura del
mensaje;
permitiendo por tanto, dependiendo de las
necesidades de un módulo de aplicación (12) y/o de la naturaleza
del mensaje, que un mensaje recibido en un puerto (10) sea leído a
otro puerto (10) sin esperar a que se haya completado la escritura
del mensaje, o ser leído a un módulo de aplicación (12) bien tras
haberse completado la escritura del mensaje o sin esperar a que se
haya completado la escritura del mensaje.
2. Receptor/descodificador según la
reivindicación 1, en el que los medios de control FIFO
(14-F) incluyen medios de detector de ocupación
(43) para detectar el estado de ocupación de la sección FIFO
(13-F) de la memoria (13).
3. Receptor/descodificador según la
reivindicación 2, en el que los medios de detector de ocupación
(43) están adaptados para detectar desbordamiento de capacidad y
desbordamiento de capacidad mínima de la sección FIFO
(13-F).
4. Receptor/descodificador según cualquiera de
las reivindicaciones 2 y 3, en el que los medios de detector de
ocupación (43) están adaptados para detectar al menos un umbral de
desbordamiento de capacidad y desbordamiento de capacidad mínima
inminente de la sección FIFO (13-F).
5. Receptor/descodificador según cualquier
reivindicación precedente, en el que los medios de control FIFO
(14-F) están dispuestos para borrar un mensaje
procedente de la sección FIFO (13-F).
6. Receptor/descodificador según cualquier
reivindicación precedente, en el que la sección FIFO
(13-F) comprende una pluralidad de memorias tampón
FIFO (40) y los medios de control FIFO (14-F)
comprenden una pluralidad respectiva de medios de control (41) de
registros FIFO.
7. Receptor/descodificador según cualquier
reivindicación precedente, en el que la sección
(13-B) de memoria tampón comprende dos áreas (30,
31) de memoria tampón definidos mediante registros (32, 33) de
memoria tampón respectivos en los medios de control
(14-B) de memoria tampón.
8. Receptor/descodificador según la
reivindicación 7, en el que los medios de control
(14-B) de memoria tampón son operables en un modo
de corriente de bits en el que una corriente de bits de entada es
dirigida al área de memoria tampón seleccionada actualmente y es
conmutada a continuación entre las dos áreas de memoria tampón a
medida que cada área de memoria tampón queda llena a su vez.
9. Receptor/descodificador según la
reivindicación 7 u 8, en el que los medios de control
(14-B) de memoria tampón son operables en un modo
de esquema de datos en el que la longitud de un mensaje de entrada
se compara con el espacio libre en el área de memoria tampón
seleccionada actualmente, y si dicho espacio es menor que la
longitud del mensaje, se selecciona el otro área de memoria
tampón.
10. Receptor/descodificador según cualquier
reivindicación precedente, que incluye una unidad de aplicación de
dispositivo de vídeo (56) alimentada desde la sección FIFO
(13-F) y que alimenta a una unidad de chip (54) que
es alimentada también con una corriente de bits de vídeo.
11. Sistema de radiodifusión que comprende un
receptor/descodificador según cualquier reivindicación precedente y
medios para transmitir mensajes al receptor/descodificador.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP98400764 | 1998-03-27 | ||
| EP98400764A EP0946053A1 (en) | 1998-03-27 | 1998-03-27 | Memory management in a receiver/decoder |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2226352T3 true ES2226352T3 (es) | 2005-03-16 |
Family
ID=8235318
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES99910630T Expired - Lifetime ES2226352T3 (es) | 1998-03-27 | 1999-03-29 | Gestion de memoria en una receptor/descodificador. |
Country Status (20)
| Country | Link |
|---|---|
| EP (2) | EP0946053A1 (es) |
| JP (1) | JP4642230B2 (es) |
| KR (1) | KR100604211B1 (es) |
| CN (1) | CN1242605C (es) |
| AT (1) | ATE274773T1 (es) |
| AU (1) | AU2953199A (es) |
| BR (1) | BR9909128A (es) |
| CA (1) | CA2324086A1 (es) |
| DE (1) | DE69919686T2 (es) |
| ES (1) | ES2226352T3 (es) |
| HR (1) | HRP20000599A2 (es) |
| HU (1) | HUP0105435A3 (es) |
| ID (1) | ID26209A (es) |
| IL (1) | IL138440A0 (es) |
| NO (1) | NO20004837L (es) |
| NZ (1) | NZ507160A (es) |
| PL (1) | PL343250A1 (es) |
| TR (1) | TR200002764T2 (es) |
| WO (1) | WO1999051021A1 (es) |
| ZA (1) | ZA200006082B (es) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020073218A1 (en) * | 1998-12-23 | 2002-06-13 | Bill J. Aspromonte | Stream device management system for multimedia clients in a broadcast network architecture |
| GB0130407D0 (en) * | 2001-12-20 | 2002-02-06 | Koninkl Philips Electronics Nv | Delivery of digital applications |
| TWI284810B (en) * | 2004-08-18 | 2007-08-01 | Via Tech Inc | Software communication between MPEG layer and servo layer |
| US8045472B2 (en) * | 2008-12-29 | 2011-10-25 | Apple Inc. | Credit management when resource granularity is larger than credit granularity |
| CN114725902B (zh) * | 2022-03-30 | 2026-04-24 | 深圳供电局有限公司 | 一种适用于通信延时不确定性的差动保护方法及系统 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH083956B2 (ja) * | 1986-09-18 | 1996-01-17 | 日本テキサス・インスツルメンツ株式会社 | 半導体記憶装置 |
| US4942553A (en) * | 1988-05-12 | 1990-07-17 | Zilog, Inc. | System for providing notification of impending FIFO overruns and underruns |
| TW237589B (es) * | 1991-02-27 | 1995-01-01 | Gen Electric | |
| US5442390A (en) * | 1993-07-07 | 1995-08-15 | Digital Equipment Corporation | Video on demand with memory accessing and or like functions |
| JP2658832B2 (ja) * | 1993-11-12 | 1997-09-30 | 日本電気株式会社 | 動画像復号制御装置 |
| US5642498A (en) * | 1994-04-12 | 1997-06-24 | Sony Corporation | System for simultaneous display of multiple video windows on a display device |
| US5720037A (en) * | 1994-06-16 | 1998-02-17 | Lucent Technologies Inc. | Multimedia on-demand server |
| JP3560078B2 (ja) * | 1995-02-06 | 2004-09-02 | ソニー株式会社 | 電子機器制御装置、電子機器制御方法、および電子機器制御システム |
| IT1275228B (it) * | 1995-02-09 | 1997-07-31 | Italtel Spa | Decodificatore per postazione di utente in un sistema di televisione interattiva |
| FR2741172B1 (fr) * | 1995-11-09 | 1997-12-12 | Thomson Multimedia Sa | Dispositif de traitement de donnees comportant une memoire tampon |
-
1998
- 1998-03-27 EP EP98400764A patent/EP0946053A1/en not_active Withdrawn
-
1999
- 1999-03-29 EP EP99910630A patent/EP1064781B1/en not_active Expired - Lifetime
- 1999-03-29 NZ NZ507160A patent/NZ507160A/en unknown
- 1999-03-29 ID IDW20002149A patent/ID26209A/id unknown
- 1999-03-29 TR TR2000/02764T patent/TR200002764T2/xx unknown
- 1999-03-29 CA CA002324086A patent/CA2324086A1/en not_active Abandoned
- 1999-03-29 CN CNB998066524A patent/CN1242605C/zh not_active Expired - Fee Related
- 1999-03-29 IL IL13844099A patent/IL138440A0/xx unknown
- 1999-03-29 PL PL99343250A patent/PL343250A1/xx unknown
- 1999-03-29 HR HR20000599A patent/HRP20000599A2/hr not_active Application Discontinuation
- 1999-03-29 KR KR1020007010748A patent/KR100604211B1/ko not_active Expired - Fee Related
- 1999-03-29 AT AT99910630T patent/ATE274773T1/de not_active IP Right Cessation
- 1999-03-29 WO PCT/IB1999/000650 patent/WO1999051021A1/en not_active Ceased
- 1999-03-29 DE DE69919686T patent/DE69919686T2/de not_active Expired - Lifetime
- 1999-03-29 AU AU29531/99A patent/AU2953199A/en not_active Abandoned
- 1999-03-29 ES ES99910630T patent/ES2226352T3/es not_active Expired - Lifetime
- 1999-03-29 BR BR9909128-3A patent/BR9909128A/pt not_active Application Discontinuation
- 1999-03-29 JP JP2000541817A patent/JP4642230B2/ja not_active Expired - Fee Related
- 1999-03-29 HU HU0105435A patent/HUP0105435A3/hu unknown
-
2000
- 2000-09-26 NO NO20004837A patent/NO20004837L/no unknown
- 2000-10-27 ZA ZA200006082A patent/ZA200006082B/xx unknown
Also Published As
| Publication number | Publication date |
|---|---|
| ATE274773T1 (de) | 2004-09-15 |
| EP1064781B1 (en) | 2004-08-25 |
| EP1064781A1 (en) | 2001-01-03 |
| NO20004837D0 (no) | 2000-09-26 |
| CN1303566A (zh) | 2001-07-11 |
| JP4642230B2 (ja) | 2011-03-02 |
| EP0946053A1 (en) | 1999-09-29 |
| KR100604211B1 (ko) | 2006-07-24 |
| HUP0105435A3 (en) | 2002-05-28 |
| CA2324086A1 (en) | 1999-10-07 |
| TR200002764T2 (tr) | 2001-01-22 |
| HRP20000599A2 (en) | 2001-06-30 |
| WO1999051021A1 (en) | 1999-10-07 |
| ID26209A (id) | 2000-12-07 |
| HUP0105435A2 (hu) | 2002-04-29 |
| AU2953199A (en) | 1999-10-18 |
| BR9909128A (pt) | 2000-12-19 |
| JP2002510908A (ja) | 2002-04-09 |
| KR20010042226A (ko) | 2001-05-25 |
| PL343250A1 (en) | 2001-07-30 |
| NZ507160A (en) | 2002-03-28 |
| ZA200006082B (en) | 2001-05-30 |
| CN1242605C (zh) | 2006-02-15 |
| IL138440A0 (en) | 2001-10-31 |
| DE69919686D1 (de) | 2004-09-30 |
| DE69919686T2 (de) | 2005-09-01 |
| NO20004837L (no) | 2000-11-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2203070T3 (es) | Terminal multimedia destinado a multiples usuarios. | |
| CN100378646C (zh) | 显示控制设备和显示控制方法 | |
| ES2201511T3 (es) | Tratamiento de un flujo de transporte digital. | |
| ES2147719T3 (es) | Metodo para controlar la ejecucion de un programa de audio y video interactivo. | |
| US7478341B2 (en) | Apparatus and method for persistent display interface | |
| JPH0554477A (ja) | Av機器 | |
| RU95106681A (ru) | Система для обработки компонент программ (варианты), схема адресации и устройство для транспортного процессора | |
| JP2523564B2 (ja) | 復号・書込み・読出し手段を有する情報処理装置 | |
| TWI459816B (zh) | 視訊緩衝器管理技術 | |
| KR100604211B1 (ko) | 리시버/디코더 및 이를 구비한 방송 시스템 | |
| BR9910053B1 (pt) | Método de processamento de dados de vídeo em um conjunto receptor/decodificador, conjunto receptor/decodificador e sistema de difusão e recepção | |
| KR100258119B1 (ko) | 대화형 멀티미디어시스템에 있어서 유저정보 편집 및 편집된정보 재생방법 | |
| KR100641660B1 (ko) | 리시버/디코더에서의 데이터 관리 | |
| US12609978B2 (en) | Information processing method and apparatus and electronic device for screen sharing authorization | |
| KR20100033926A (ko) | 영상 데이터 처리 장치 및 영상 데이터 처리 방법 | |
| JP4303884B2 (ja) | モデム制御 | |
| CZ200287A3 (cs) | Zařízení a způsob pro testování softwarových aplikací | |
| MXPA00009426A (es) | Administracion de memoria en un receptor/descodificador | |
| CZ20003564A3 (cs) | Přijímař/dekodér a vysílací systém | |
| US20060067532A1 (en) | Communication unit and communication method | |
| US7627232B2 (en) | Reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
| CZ20003997A3 (cs) | Způsob zpracování video dat a přijímač /dekodér | |
| KR20030047091A (ko) | 디지털 영상정보 처리를 위한 방송 수신기의 인터페이스장치 및 방법 | |
| MXPA00010628A (es) | Receptor/descodificador y metodo para procesar datos de video | |
| JPS609263A (ja) | 電子黒板の動作モ−ド管理方式 |