ES2346045T3 - Sistema y metodo de control de acceso a memoria compartida para una arquitectura de ordenador para redes de banda ancha. - Google Patents
Sistema y metodo de control de acceso a memoria compartida para una arquitectura de ordenador para redes de banda ancha. Download PDFInfo
- Publication number
- ES2346045T3 ES2346045T3 ES02705345T ES02705345T ES2346045T3 ES 2346045 T3 ES2346045 T3 ES 2346045T3 ES 02705345 T ES02705345 T ES 02705345T ES 02705345 T ES02705345 T ES 02705345T ES 2346045 T3 ES2346045 T3 ES 2346045T3
- Authority
- ES
- Spain
- Prior art keywords
- memory
- key
- bits
- treatment
- access
- 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/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Storage Device Security (AREA)
- Image Processing (AREA)
Abstract
Un sistema (101) de tratamiento por ordenador, comprendiendo dicho sistema (101) de tratamiento: una primera memoria (225) para almacenar programas y datos asociados con dichos programas; una pluralidad de primeras unidades (402) de tratamiento para tratar dichos programas y dichos datos asociados; un controlador de memoria (205) para controlar los accesos a dicha primera memoria por dichas primeras unidades (402) de tratamiento; una segunda memoria para almacenar una tabla de acceso (2102) y una tabla de claves (1902), comprendiendo dicha tabla de acceso (2102) una pluralidad de entradas de acceso, incluyendo cada una de dichas entradas de acceso una clave de acceso y una identificación de un espacio de memoria dentro de dicha primera memoria asociado con dicha clave de acceso, comprendiendo dicha tabla de claves (1902) una pluralidad de entradas de claves, incluyendo cada una de dichas entradas de claves una identificación de una de dichas primeras unidades (402) de tratamiento y una clave de solicitud asociada con dicha primera unidad (402) de tratamiento; y una segunda unidad (203) de tratamiento para controlar dicho tratamiento de dichos programas y dichos datos asociados por dichas primeras unidades (402) de tratamiento, siendo accionable dicha segunda unidad (203) de tratamiento para construir y mantener dicha tabla de acceso (2102) y dicha tabla de claves (1902), siendo además accionable dicha segunda unidad (203) de tratamiento para dirigir cualquiera de dichas primeras unidades (402) de tratamiento para procesar uno de dichos programas, siendo accionable dicha primera unidad (402) de tratamiento para tratar dicho programa para emitir una solicitud a dicho controlador de memoria (205) para acceder a una posición de almacenamiento dentro de dicha primera memoria (225), siendo accionable dicho controlador de memoria, en respuesta a dicha solicitud, para comparar la clave de solicitud asociada con dicha primera unidad (402) de tratamiento en dicha tabla de claves (1902) con las claves de acceso en dicha tabla de acceso (2102), y si una de dichas claves de acceso corresponde con la clave de solicitud asociada con dicha primera unidad (402) de tratamiento en dicha tabla de claves (1902) y dicha posición de almacenamiento corresponde al espacio de memoria asociado con dicha clave de acceso e identificado en dicha tabla de acceso (2102), ejecutar dicha solicitud.
Description
Sistema y método de control de acceso a memoria
compartida para una arquitectura de ordenador para redes de banda
ancha.
El presente invento se refiere a una
arquitectura para procesadores de ordenador y redes de ordenadores
y, en particular, a una arquitectura para procesadores de ordenador
y redes de ordenadores en un entorno de banda ancha, y más
particularmente a un sistema de tratamiento por ordenador con un
sistema de control de acceso a memoria compartida de
multiprocesador. El presente invento se refiere además a un modelo
de programación para tal arquitectura y, en particular, a un método
de tratamiento por ordenador.
Los ordenadores y dispositivos informáticos de
redes actuales de ordenadores, por ejemplo redes de área local
(LAN) usados en redes de oficinas y redes globales tales como
Internet, fueron diseñados principalmente para informática
autónoma. La acción de compartir datos y programas de aplicación
("aplicaciones") sobre una red de ordenadores no era un
objetivo del diseño principal de estos ordenadores y dispositivos
informáticos. Estos ordenadores y dispositivos informáticos también
fueron diseñados típicamente usando una amplia variedad de
diferentes procesadores hechos por una variedad de diferentes
fabricantes, por ejemplo, Motorola, Intel, Texas Instruments, Sony
y otros. Cada uno de estos procesadores tiene su propio conjunto de
instrucciones particulares y arquitectura de conjunto de
instrucciones (ISA), es decir, su propio conjunto particular de
instrucciones de estructura de lenguaje de ensamblaje para las
principales unidades informáticas y unidades de memoria principales
para que realicen estas instrucciones. Se requiere un programador
para comprender, por ello, cada conjunto de instrucciones del
procesador y la ISA para escribir aplicaciones para estos
procesadores. Esta combinación heterogénea de ordenadores y
dispositivos informáticos en las redes de ordenadores de hoy en día
complica el tratamiento y la acción de compartir datos y
aplicaciones. A menudo se requieren múltiples versiones de la misma
aplicación, además, para acomodar este entorno
heterogéneo.
heterogéneo.
Los tipos de ordenadores y dispositivos
informáticos conectados a redes globales, particularmente a
Internet, son extensivos. Además de los ordenadores personales (PC)
y servidores, estos dispositivos informáticos incluyen teléfonos
móviles, ordenadores móviles, asistentes digitales personales (PDA),
codificadores, televisiones digitales y muchos otros. La acción de
compartir datos y aplicaciones entre esta variedad de ordenadores y
dispositivos informáticos presenta problemas sustanciales.
Se han empleado varias técnicas en un intento de
resolver estos problemas. Estas técnicas incluyen, entre otras,
interfaces sofisticadas y técnicas de programación complicadas.
Estas soluciones requieren a menudo aumentos sustanciales en la
potencia de tratamiento para llevarlas a la práctica. También a
menudo dan como resultado un aumento sustancial del tiempo
requerido para procesar aplicaciones y para transmitir datos sobre
redes.
Los datos son transmitidos típicamente sobre
Internet por separado desde las aplicaciones correspondientes. Esta
aproximación evita la necesidad de enviar la aplicación con cada
conjunto de datos transmitidos correspondientes a la aplicación.
Aunque esta aproximación minimiza la cantidad de ancho de banda
necesario, también causa a menudo frustración entre los usuarios.
La aplicación correcta, o la aplicación más corriente, para los
datos transmitidos puede no estar disponible en el ordenador del
cliente. Esta aproximación también requiere la escritura de una
multiplicidad de versiones de cada aplicación para la multiplicidad
de ISA y conjuntos de instrucciones diferentes empleados por los
procesadores de la red.
El modelo Java intenta resolver este problema.
Este modelo emplea una pequeña aplicación ("miniprograma" o en
inglés "applet") que cumple con un protocolo de seguridad
estricto. Los miniprogramas son enviados desde un ordenador
servidor sobre la red para ser ejecutados por un ordenador de
cliente ("cliente"). Para evitar tener que enviar diferentes
versiones del mismo miniprograma a clientes que emplean diferentes
ISA, todos los miniprogramas de Java son ejecutados en una máquina
virtual Java del cliente. Esta máquina virtual Java es un software
que emula un ordenador que tiene una ISA de Java y un conjunto de
instrucciones Java. Este software sin embargo, se ejecuta sobre la
ISA del cliente y el conjunto de instrucciones del cliente. Una
versión de la máquina virtual Java es proporcionada para cada ISA y
conjunto de instrucciones diferentes de los clientes. Por ello, no
se requiere una multiplicidad de diferentes versiones de cada
miniprograma. Cada cliente descarga solo la máquina virtual Java
correcta para su ISA y conjunto de instrucciones particulares para
ejecutar todos los miniprogramas de Java.
Aunque proporciona una solución al problema de
tener que escribir versiones diferentes de una aplicación para cada
ISA y conjunto de instrucciones diferentes, el modelo de tratamiento
Java requiere una capa adicional de software sobre el ordenador del
cliente. Esta capa adicional de software degrada significativamente
una velocidad de tratamiento del ordenador. Esta disminución de la
velocidad es particularmente significativa para aplicaciones
multimedia en tiempo real. Un miniprograma o "applet" de Java
descargado también puede contener virus, fallos de tratamiento,
etc. Estos virus y fallos pueden corromper una base de datos de un
cliente y causar otros daños. Aunque un protocolo de seguridad
empleado en el modelo Java intenta resolver este problema
implantando un entorno restringido ("sandbox") de software, es
decir, un espacio en la memoria del cliente más allá del cual el
miniprograma de Java no puede escribir datos, este modelo de
seguridad activado mediante software es a menudo inseguro en su
implantación y requiere incluso más tratamiento.
Las aplicaciones de red, multimedia, en tiempo
real están resultando cada vez más importantes. Estas aplicaciones
de red requieren velocidades de tratamiento extremadamente rápidas.
Muchos miles de megabits de datos por segundo pueden ser necesarios
en el futuro para tales aplicaciones. La arquitectura común de
redes, y particularmente la de Internet, y el modelo de
programación actualmente puesto en práctica, por ejemplo, en el
modelo Java, hace que alcanzar tales velocidades de tratamiento sea
extremadamente difícil.
Por ello, se requieren una nueva arquitectura de
ordenador, una nueva arquitectura para redes de ordenadores y un
nuevo modelo de programación. Esta arquitectura y modelo de
programación nuevos deberían resolver los problemas de compartir
datos y aplicaciones entre los distintos miembros de una red sin
imponer cargas informáticas añadidas. Esta arquitectura de
ordenador y modelo de programación nuevos deberían también resolver
los problemas de seguridad inherentes al compartir aplicaciones y
datos entre los miembros de una red.
El documento
US-A-5.978.839 describe un sistema
de tratamiento por ordenador en el que, cuando se asigna memoria
para una CPU, la información de la CPU (por ejemplo el número de
CPU, ID de CPU, y/o el tipo de CPU) deberían ser previamente
clarificados o proporcionados al sistema. Si tal información no ha
sido proporcionada previamente, el sistema no puede asignar memoria
para la CPU ya que el sistema no conoce la información de la
CPU.
El presente invento está definido en las
reivindicaciones. En un aspecto, el presente invento proporciona
una nueva arquitectura para ordenadores, dispositivos informáticos y
redes de ordenadores. En otro aspecto, el presente invento
proporciona un nuevo modelo de programación para estos ordenadores,
dispositivos informáticos y redes de ordenadores.
De acuerdo con el presente invento, todos los
miembros de una red de ordenadores, es decir, todos los ordenadores
y dispositivos informáticos de la red, están construidos a partir de
un módulo informático común. Este módulo informático común tiene
una estructura consistente y preferiblemente emplea la misma ISA.
Los miembros de la red pueden ser, por ejemplo, clientes,
servidores, PC, ordenadores móviles, maquinas de juegos, PDA,
codificadores, aparatos, televisiones digitales y otros
dispositivos que usan procesadores de ordenador. La estructura
modular consistente permite un tratamiento de aplicaciones y datos
eficiente, de elevada velocidad por los miembros de la red y la
rápida transmisión de aplicaciones y datos sobre la red. Esta
estructura también simplifica la construcción de miembros de la red
de distintos tamaños y potencia de tratamiento y la preparación de
aplicaciones para su tratamiento por estos miembros. Además, de
acuerdo con una realización del presente invento, se ha
proporcionado una red de ordenadores que comprende una pluralidad de
procesadores conectados a dicha red, comprendiendo cada uno de
dichos procesadores una pluralidad de primeras unidades de
tratamiento que tienen la misma arquitectura de conjunto de
instrucciones y una segunda unidad de tratamiento para controlar
dichas primeras unidades de tratamiento, siendo dichas primeras
unidades de tratamiento operables para procesar celdas de software
transmitidas sobre dicha red, comprendiendo cada una de dichas
celdas de software un programa compatible con dicha arquitectura de
conjunto de instrucciones, datos asociados con dicho programa y un
identificador que identifica únicamente dicha celda de software
entre la totalidad de dichas celdas de software transmitidas sobre
dicha red. Preferiblemente, el identificador tiene un número de
identificación que identifica únicamente dicha celda de software
entre la totalidad de dichas celdas de software transmitidas sobre
dicha red.
En otro aspecto, el presente invento proporciona
un nuevo modelo de programación para transmitir datos y aplicaciones
sobre una red y para tratar datos y aplicaciones entre los miembros
de la red. Este modelo de programación emplea una celda de software
transmitida sobre la red para su tratamiento por cualquiera de los
miembros de la red. Cada celda de software tiene la misma
estructura y puede contener tanto aplicaciones como datos. Como
resultado del tratamiento de alta velocidad y de la velocidad de
transmisión proporcionada por la arquitectura de ordenador modular,
las celdas pueden ser procesadas rápidamente. El código para las
aplicaciones está basado preferiblemente en el mismo conjunto de
instrucción e ISA comunes. Cada celda de software contiene
preferiblemente una identificación global (ID global) e información
que describe la cantidad de recursos informáticos requeridos para
el tratamiento de las celdas. Como todos los recursos informáticos
tienen la misma estructura básica y emplean la misma ISA, el
recurso particular que realiza este tratamiento puede estar situado
en cualquier lugar de la red y asignado dinámicamente.
El módulo de tratamiento básico es un elemento
de procesador (PE). Un PE comprende preferiblemente una unidad de
tratamiento (PU), un controlador de acceso directo a la memoria
(DMAC) y una pluralidad de unidades de tratamiento unidas (APU). En
una realización preferida, un PE comprende ocho APU. La PU y las APU
actúan entre ellas con una memoria dinámica compartida de acceso
aleatorio (DRAM) que tiene preferiblemente una arquitectura de
cruz. La PU programa y orquesta el tratamiento de datos y
aplicaciones por las APU. Las APU realizan este tratamiento de una
forma independiente y paralela. El DMAC controla los accesos por la
PU y las APU a los datos y aplicaciones almacenados en la DRAM
compartida.
De acuerdo con esta estructura modular, el
número de PE empleado por un miembro de la red está basado en la
potencia de tratamiento requerida por dicho miembro. Por ejemplo, un
servidor puede emplear cuatro PE, una estación de trabajo puede
emplear dos PE y una PDA puede emplear un PE. El número de APU de un
PE asignado para procesar una celda de software particular depende
de la complejidad y magnitud de los programas y datos contenidos
dentro de la celda.
En una realización preferida, una pluralidad de
PE está asociada con una DRAM compartida. La DRAM esta
preferiblemente segregada en una pluralidad de secciones, y cada
una de estas secciones está segregada en una pluralidad de bancos
de memoria. En una realización preferida particularmente, la DRAM
comprende sesenta y cuatro bancos de memoria, y cada banco tiene un
megabyte de capacidad de almacenamiento. Cada sección de la DRAM es
controlada preferiblemente por un controlador de banco, y cada DMAC
de un PE accede preferiblemente a cada controlador de banco. El
DMAC de cada PE en esta realización, por ello, puede acceder a
cualquier parte de la DRAM compartida.
En otro aspecto que no es parte del presente
invento pero que sirve para un mejor entendimiento del tema
reivindicado, puede proporcionarse un sistema y un método
sincronizados para una lectura de datos de una APU desde la DRAM
compartida, y la escritura de datos a la misma. Este sistema evita
conflictos entre las múltiples APU y los múltiples PE que comparten
la DRAM. De acuerdo con este sistema y método, un área de la DRAM es
designada para almacenar una pluralidad de bits
llenos-vacíos. Cada uno de estos bits
llenos-vacíos corresponde a un área designada de la
DRAM. El sistema sincronizado está integrado en el hardware de la
DRAM y, por ello, evita la sobrecarga informática de un esquema de
sincronización de datos puesto en práctica en software.
El presente invento también implanta entornos
restringidos dentro de la DRAM para proporcionar seguridad contra
la corrupción de datos para un programa que está siendo tratado por
una APU a partir de los datos para un programa que está siendo
tratado por otra APU. Cada entorno restringido define un área de la
DRAM compartida más allá de la cual una APU particular, o conjunto
de APU, no puede leer o escribir datos.
En otro aspecto que no es parte del presente
invento pero que sirve para un mejor entendimiento del tema
reivindicado, puede proporcionarse un sistema y un método para la
emisión de órdenes de la PU a las APU para iniciar el tratamiento
de aplicaciones y datos de las APU. Estas órdenes, denominadas
llamadas de procedimiento remoto de la APU (ARPC), permiten que las
PU orquesten y coordinen el tratamiento paralelo de aplicaciones y
datos de las APU sin que las APU realicen la función de
coprocesadores.
En otro aspecto que no es parte del presente
invento pero que sirve para un mejor entendimiento del tema
reivindicado, puede proporcionarse un sistema y un método para
establecer una estructura de tubería dedicada para el tratamiento
de la corriente de datos. De acuerdo con este sistema y método, un
grupo coordinado de APU, y un grupo coordinado de entornos
restringidos de memoria asociadas con estas APU, son establecidos
por una PU para el tratamiento de estos datos. Las APU de tubería
dedicada y los entornos restringidos de memoria permanecen dedicados
a la tubería durante períodos en los que el tratamiento de datos no
tiene lugar. En otras palabras, las APU dedicadas y sus entornos
restringidos asociados son colocados en un estado reservado durante
estos períodos.
En otro aspecto que no es parte del presente
invento pero que sirve para un mejor entendimiento del tema
reivindicado, puede proporcionarse un temporizador absoluto para el
tratamiento de tareas. Este temporizador absoluto es independiente
de la frecuencia de los relojes empleados por las APU para el
tratamiento de aplicaciones y datos. Las aplicaciones son escritas
basándose en el período de tiempo para tareas definido por el
temporizador absoluto. Si la frecuencia de los relojes empleados
por las APU aumenta debido, por ejemplo, a mejoras en las APU, el
período de tiempo para una tarea dada como ha sido definido por el
temporizador absoluto permanece el mismo. Este esquema permite la
utilización de tiempos de tratamiento mejorados por versiones más
nuevas de las APU sin incapacitar a estas APU más nuevas en
aplicaciones de tratamiento más viejas escritas para los tiempos de
tratamiento más lentos de las APU más viejas.
También puede proporcionarse, como un aspecto
que no es parte del presente invento pero que sirve para un mejor
entendimiento del tema reivindicado, un esquema alternativo para
permitir que las APU más nuevas que tienen velocidades de
tratamiento más rápidas traten aplicaciones más viejas escritas para
las velocidades de tratamiento más lentas de las APU más viejas. En
este esquema alternativo, las instrucciones o el microcódigo
particulares empleados por las APU en el tratamiento de estas
aplicaciones más viejas son analizados durante el tratamiento para
problemas en la coordinación del tratamiento paralelo de las APU
creado por las velocidades mejoradas. Las instrucciones "sin
funcionamiento" ("NOOP") son insertadas en las instrucciones
ejecutadas por alguna de estas APU para mantener la terminación
secuencial del tratamiento por las APU esperado por el programa.
Insertando estas NOOP en estas instrucciones, es mantenida la
temporización correcta para la ejecución de todas las instrucciones
de las APU.
En otro aspecto que no es parte del presente
invento pero que sirve para un mejor entendimiento del tema
reivindicado, puede proporcionarse un paquete de chip que contiene
un circuito integrado en el que está integrada una guía de onda
óptica.
La fig. 1 ilustra la arquitectura total de una
red de ordenadores que no es parte del presente invento pero que
sirve para un mejor entendimiento del tema reivindicado.
La fig. 2 es un diagrama que ilustra la
estructura de un elemento procesador (PE) de acuerdo con el presente
invento.
La fig. 3 es un diagrama que ilustra la
estructura de un motor de banda ancha (BE) que no es parte del
presente invento pero que sirve para un mejor entendimiento del
tema reivindicado.
La fig. 4 es un diagrama que ilustra la
estructura de una unidad de tratamiento unida (APU) de acuerdo con
el presente invento.
La fig. 5 es un diagrama que ilustra la
estructura de un elemento de procesador, visualizador (VS) y una
interfaz óptica que no es parte del presente invento pero que sirve
para un mejor entendimiento del tema reivindicado.
La fig. 6 es un diagrama que ilustra una
combinación de elementos de procesador de acuerdo con el presente
invento.
La fig. 7 ilustra otra combinación de elementos
de procesador que no es parte del presente invento pero que sirve
para un mejor entendimiento del tema reivindicado.
La fig. 8 ilustra aún otra combinación de
elementos de procesador que no es parte del presente invento pero
que sirve para un mejor entendimiento del tema reivindicado.
La fig. 9 ilustra aún otra combinación de
elementos de procesador que no es parte del presente invento pero
que sirve para un mejor entendimiento del tema reivindicado.
La fig. 10 ilustra aún otra combinación de
elementos de procesador que no es parte del presente invento pero
que sirve para un mejor entendimiento del tema reivindicado.
La fig. 11A ilustra la integración de interfaces
ópticas dentro de un paquete de chip que no es parte del presente
invento pero que sirve para un mejor entendimiento del tema
reivindicado.
La fig. 11B es un diagrama de una configuración
de procesadores que usan las interfaces ópticas de la fig. 11A.
La fig. 11C es un diagrama de otra configuración
de procesadores que usan las interfaces ópticas de la fig. 11A.
La fig. 12A ilustra la estructura de un sistema
de memoria que no es parte del presente invento pero que sirve para
un mejor entendimiento del tema reivindicado.
La fig. 12B ilustra la escritura de datos desde
un primer motor de banda ancha a un segundo motor de banda ancha
que no es parte del presente invento pero que sirve para un mejor
entendimiento del tema reivindicado.
La fig. 13 es un diagrama de la estructura de
una memoria compartida para un elemento de procesador de acuerdo
con el presente invento.
La fig. 14A ilustra una estructura para un banco
de la memoria mostrado en la fig. 13.
La fig. 14B ilustra otra estructura para un
banco de la memoria mostrado en la fig. 13.
La fig. 15 ilustra una estructura para un
controlador de acceso directo a la memoria de acuerdo con el
presente invento.
La fig. 16 ilustra una estructura alternativa
para un controlador de acceso directo a la memoria de acuerdo con
el presente invento.
Las figs. 17A a 17O ilustran la operación de
sincronización de datos que no es parte del presente invento pero
que sirve para un mejor entendimiento del tema reivindicado.
La fig. 18 es un diagrama de memoria de tres
estados que ilustra los distintos estados de una posición de
memoria de acuerdo con el esquema de sincronización de datos que no
es parte del presente invento pero que sirve para un mejor
entendimiento del tema reivindicado.
La fig. 19 ilustra la estructura de una tabla de
control de claves para un entorno restringido de hardware de
acuerdo con el presente invento.
La fig. 20 ilustra un esquema para almacenar
claves de acceso a la memoria para un entorno restringido de
hardware de acuerdo con el presente invento.
La fig. 21 ilustra la estructura de una tabla de
control de acceso a la memoria para un entorno restringido de
hardware de acuerdo con el presente invento.
La fig. 22 es un diagrama de flujo de las
operaciones para acceder a un entorno restringido de memoria que
usa la tabla de control de claves de la fig. 19 y la tabla de
control de acceso a la memoria de la fig. 21.
La fig. 23 ilustra la estructura de una celda de
software que no es parte del presente invento pero que sirve para
un mejor entendimiento del tema reivindicado.
La fig. 24 es un diagrama de flujo de las
operaciones para emitir llamadas de procedimiento remoto a las APU
que no es parte del presente invento pero que sirve para un mejor
entendimiento del tema reivindicado.
La fig. 25 ilustra la estructura de una tubería
dedicada para tratar la corriente de datos que no es parte del
presente invento pero que sirve para un mejor entendimiento del tema
reivindicado.
Las figs. 26A-26B son diagramas
de flujos de las operaciones realizadas por la tubería dedicada de
la fig. 25 en el tratamiento de la corriente de datos que no es
parte del presente invento pero que sirve para un mejor
entendimiento del tema reivindicado.
La fig. 27 ilustra una estructura alternativa
para una tubería dedicada para el tratamiento de la corriente de
datos que no es parte del presente invento pero que sirve para un
mejor entendimiento del tema reivindicado.
La fig. 28 ilustra un esquema para un
temporizador absoluto para coordinar el tratamiento paralelo de
aplicaciones y datos por las APU que no es parte del presente
invento pero que sirve para un mejor entendimiento del tema
reivindicado.
La arquitectura total para un sistema
informático 101 que no es parte del presente invento pero que sirve
para un mejor entendimiento del tema reivindicado, es mostrada en la
fig. 1.
Como se ha ilustrado en esta figura, el sistema
101 incluye una red 104 a la que están conectada una pluralidad de
ordenadores y dispositivos informáticos. La red 104 puede ser una
LAN, una red global, tal como Internet, o cualquier otra red
informática.
Los ordenadores y dispositivos informáticos
conectados a la red 104 (los "miembros" de la red) incluyen,
por ejemplo, ordenadores de cliente 106, ordenadores servidores
108, asistentes digitales personales (PDA) 110, televisión digital
(DTV) 112 y otros ordenadores y dispositivos informáticos conectados
por cable o inalámbricos. Los procesadores empleados por los
miembros de red 104 son construidos a partir del mismo módulo
informático común. Estos procesadores preferiblemente también
tienen todos la misma ISA y realizan el tratamiento de acuerdo con
el mismo conjunto de instrucciones. El número de módulos incluido
dentro de cualquier procesador particular depende de la potencia de
tratamiento requerida por ese procesador.
Por ejemplo, como los servidores 108 del sistema
101 realizan más tratamiento de datos y aplicaciones que los
clientes 106, los servidores 108 contienen más módulos informáticos
que los clientes 106. Las PDA 110, por otro lado, realizan la menor
cantidad de tratamiento. Las PDA 110, por ello, contienen el menor
número de módulos informáticos. La DTV 112, realiza un nivel de
tratamiento entre las de los clientes 106 y los servidores 108. La
DTV 112, por ello, contiene un número de módulos informáticos entre
el de los clientes 106 y los servidores 108. Como se ha descrito
más adelante, cada módulo informático contiene un controlador de
tratamiento y una pluralidad de unidades de tratamiento idénticas
para realizar el tratamiento paralelo de los datos y aplicaciones
transmitidos sobre la red 104.
Esta configuración homogénea para el sistema 101
facilita su adaptabilidad, velocidad de tratamiento y eficiencia de
tratamiento. Debido a que cada miembro del sistema 101 realiza el
tratamiento usando uno o más (o alguna fracción) del mismo módulo
informático, el ordenador o dispositivo informático particular que
realiza el tratamiento real de datos y aplicaciones no tiene
importancia. El tratamiento de una aplicación y de datos
particulares, además, puede ser compartido entre los miembros de
red. Identificando únicamente las celdas que comprenden los datos y
aplicaciones tratados por el sistema 101 a través del sistema, los
resultados del tratamiento pueden ser transmitidos al ordenador o
sistema informático solicitando el tratamiento independientemente de
donde ha ocurrido este tratamiento. Debido a que los módulos que
realizan este tratamiento tienen una estructura común y emplean una
ISA común, las cargas informáticas de una capa añadida de software
son evitadas para conseguir la compatibilidad entre los
procesadores. Esta arquitectura y modelo de programación facilitan
la velocidad de tratamiento necesaria para ejecutar, por ejemplo,
aplicaciones multimedia en tiempo real.
Para aprovecharse más de las velocidades y
eficiencias de tratamiento facilitadas por el sistema 101, los
datos y aplicaciones tratados por este sistema son empaquetados en
celdas de software 102 uniformemente formateadas identificadas
únicamente. Cada celda de software 102 contiene, o puede contener
tanto aplicaciones como datos. Cada celda de software también
contiene una ID para identificar globalmente la celda a través de
toda la red 104 y el sistema 101. Esta uniformidad de estructura
para las celdas de software, y la identificación única de las
celdas de software en toda la red, facilita el tratamiento de
aplicaciones y datos sobre cualquier ordenador o dispositivo
informático de la red. Por ejemplo, un cliente 106 puede formular
una celda de software 102 pero, debido a la capacidades de
tratamiento limitadas del cliente 106, transmitir esta celda de
software a un servidor 108 para su tratamiento. Las celdas de
software pueden migrar, por ello, a través de toda la red 104 para
su tratamiento sobre la base de disponibilidad de recursos de
tratamiento en la red.
La estructura homogénea de procesadores y celdas
de software del sistema 101 también evita muchos problemas de las
redes heterogéneas actuales. Por ejemplo, modelos de programación
ineficientes que buscan permitir el tratamiento de aplicaciones
sobre cualquier ISA usando cualquier conjunto de instrucciones, por
ejemplo, máquinas virtuales tales como la máquina virtual Java, son
evitados. El sistema 101, por ello, puede poner en práctica el
tratamiento de banda ancha mucho más efectiva y eficientemente que
las redes de hoy en día.
El módulo de tratamiento básico para todos los
miembros de red 104 es el elemento de procesador (PE). La fig. 2
ilustra la estructura de un PE. Como se ha mostrado en esta figura,
PE 201 comprende una unidad de tratamiento (PU) 203, un controlador
de acceso directo de memoria (DMAC) 205 y una pluralidad de unidades
de tratamiento unidas (APU), particularmente, APU 207, APU 209, APU
211, APU 213, APU 215, APU 217, APU 219 y APU 221. Un bus o línea
de transmisión local 223 de PE transmite datos y aplicaciones entre
los APU, DMAC 205 y PU 203. El bus local 223 de PE puede tener, por
ejemplo, una arquitectura tradicional o ser implantado como una red
conmutada por paquetes. La implantación como una red conmutada por
paquetes, al tiempo que requiere más hardware, aumenta el ancho de
banda disponible.
El PE 201 puede ser construido usando distintos
métodos para poner en práctica la lógica digital. El PE 201 es
construido preferiblemente, sin embargo, como un único circuito
integrado que emplea un semiconductor de óxido metálico
complementario (CMOS) sobre un substrato de silicio. Materiales
alternativos para substratos incluyen arseniuro de galio, arseniuro
de galio aluminio y otros compuestos denominados
III-B que emplean una amplia variedad de dopantes.
El PE 201 también podría ser puesto en práctica usando un material
superconductor, por ejemplo, lógica rápida de quantum de flujo
único (RSFQ).
El PE 201 está estrechamente asociado con una
memoria dinámica de acceso aleatorio (DRAM) 225 a través de una
conexión 227 de memoria de ancho de banda elevado. La DRAM 225
funciona como la memoria principal para el PE 201. Aunque una DRAM
225 es preferiblemente una memoria dinámica de acceso aleatorio, la
DRAM 225 podría ser puesta en práctica usando otros medios, por
ejemplo, como una memoria estática de acceso aleatorio (SRAM), una
memoria magnética de acceso aleatorio (MRAM), una memoria óptica o
una memoria holográfica. El DMAC 205 facilita la transferencia de
datos entre la DRAM 225 y las APU y PU de PE 201. Como se ha
descrito adicionalmente más adelante, el DMAC 205 designa para cada
APU un área exclusiva en la DRAM 225 en la que sólo la APU puede
escribir datos y desde la que sólo la APU puede leer datos. Esta
área exclusiva es designada un entorno restringido.
La PU 203 puede ser, por ejemplo, un procesador
estándar capaz de tratamiento autónomo de datos y aplicaciones. En
funcionamiento, la PU 203 programa y orquesta el tratamiento de
datos y aplicaciones por las APU. Las APU son preferiblemente
procesadores de múltiples datos de una única instrucción (SIMD).
Bajo el control de la PU 203, las APU realizan el tratamiento de
estos datos y aplicaciones de una manera paralela e independiente.
El DMAC 205 controla los accesos por la PU 203 y las APU a los datos
y aplicaciones almacenados en la DRAM 225 compartida. Aunque el PE
201 incluye preferiblemente ocho APU, un mayor o menor número de APU
puede ser empleado en un PE dependiendo de la potencia de
tratamiento requerida. También, un número de PE, tal como el PE
201, puede estar unido o empaquetado junto para proporcionar la
potencia de tratamiento mejorada.
Por ejemplo, como se ha mostrado en la fig. 3,
cuatro PE pueden ser empaquetados o unidos juntos, por ejemplo,
dentro de uno o más paquetes de chip, para formar un único
procesador para un miembro de red 104. Esta configuración es
designada un motor de banda ancha (BE). Como se ha mostrado en la
fig. 3, el BE 301 contiene cuatro PE, particularmente, PE 303, PE
305, PE 307 y PE 309. Las comunicaciones entre estos PE están sobre
el bus 311 del BE. La conexión 313 de memoria amplia de banda ancha
proporciona comunicación entre la DRAM compartida 315 y estos PE.
En lugar del bus 311 del BE, las comunicaciones entre los PE del BE
301 pueden ocurrir a través de la DRAM 315 y de esta conexión de
memoria.
La interfaz de entrada/salida (I/O) 317 y el bus
externo 319 proporcionan comunicaciones entre el motor de banda
ancha 301 y los otros miembros de red 104. Cada PE del BE 301
realiza el tratamiento de datos y aplicaciones de una manera
paralela e independiente análoga al tratamiento paralelo e
independiente de aplicaciones y datos realizado por las APU de un
PE.
La fig. 4 ilustra la estructura de una APU. La
APU 402 incluye una memoria local 406, registros 410, cuatro
unidades 412 de coma flotante y cuatro unidades 414 de número
entero. De nuevo, sin embargo, dependiendo de la potencia de
tratamiento requerida, puede emplearse un número mayor o menor de
unidades 412 de coma flotante y unidades 414 de número entero. En
una realización preferida, la memoria local 406 contiene 128
kilobytes de almacenamiento, y la capacidad de registros 410 es 128
x 128 bits. Las unidades 412 de coma flotante funcionan
preferiblemente a una velocidad de 32 billones de operaciones de
coma flotante por segundo (32 GFLOPS), y las unidades 414 de número
entero funcionan preferiblemente a una velocidad de 32 billones de
operaciones por segundo (32 GOPS).
La memoria local 406 no es una memoria caché. La
memoria local 406 es construida preferiblemente como una SRAM. El
soporte de coherencia caché para una APU es innecesario. Una APU
puede requerir el soporte de coherencia caché para accesos de
memoria directos iniciados por la PU. El soporte de coherencia caché
no es requerido, sin embargo, para accesos de memoria directos
iniciados por una APU o para accesos desde y hacia dispositivos
externos.
\newpage
La APU 402 incluye además el bus 404 para
transmitir aplicaciones y datos hacia y desde la APU. En una
realización preferida, este bus es de 1.024 bits de ancho. La APU
402 incluye además buses internos 408, 420 y 418. En una
realización preferida, el bus 408 tiene una anchura de 256 bits y
proporciona comunicaciones entre la memoria local 406 y los
registros 410. Los buses 420 y 418 proporcionan comunicaciones
entre, respectivamente, registros 410 y unidades 412 de coma
flotante, y registros 410 y unidades 414 de número entero. En una
realización preferida, el ancho de los buses 418 y 420 desde las
unidades de cómo flotante o de número entero es de 384 bits, y el
ancho de los buses 418 y 420 desde las unidades de número entero o
de coma flotante hasta los registros 410 es de 128 bits. La anchura
mayor de estos buses desde los registros 410 hasta las unidades de
número entero o de coma flotante que desde estas unidades a
registros 410 acomoda el mayor flujo de datos desde los registros
410 durante el tratamiento. Un máximo de tres palabras son
necesarias para cada cálculo. El resultado de cada cálculo, sin
embargo, normalmente es sólo una palabra.
Las figs. 5 a 10 ilustran además la estructura
modular de los procesadores de los miembros de red 104. Por
ejemplo, como se ha mostrado en la fig. 5, un procesador puede
comprender un único PE 502. Como se ha descrito antes, este PE
comprende típicamente una PU, un DMAC y ocho APU. Cada APU incluye
un almacenamiento local (LS). Por otro lado, un procesador puede
comprender la estructura del visualizador (VS) 505. Como se ha
mostrado en la fig. 5, el VS 505 comprende la PU 512, el DMAC 514 y
cuatro APU, particularmente, APU 516, APU 518, APU 520 y APU 522.
El espacio entre el paquete de chip normalmente ocupado por las
otras cuatro APU de un PE está ocupado en este caso por el motor de
píxel 508, la imagen caché 510 y el controlador de tubo de rayos
catódicos (CRTC) 504. Dependiendo de la velocidad de comunicaciones
requerida para el PE 502 o el VS 505, el enlace óptico 506 también
puede ser incluido en el paquete de chip.
Usando esta estructura modular, estandarizada,
otras numerosas variaciones de procesadores pueden ser construidas
fácil y eficientemente. Por ejemplo, el procesador mostrado en la
fig. 6 comprende dos paquetes de chip, particularmente, un paquete
de chip 602 que comprende un BE y un paquete de chip 604 que
comprende cuatro VS. La entrada/salida (I/O) 606 proporciona una
interfaz entre el BE del paquete de chip 602 y la red 104. El bus
608 proporciona comunicaciones entre el paquete de chip 602 y el
paquete de chip 604. El procesador 610 de entrada salida (IOP)
controla el flujo de datos dentro y fuera de la I/O 606. La I/O 606
puede ser fabricada como un circuito integrado específico de
aplicación (ASIC). La salida desde los VS es una señal de video
612.
La fig. 7 ilustra un paquete de chip para un BE
702 con dos interfaces ópticas 704 y 706 para proporcionar
comunicaciones de velocidad ultra elevada a los otros miembros de
red 104 (u otros paquetes de chip localmente conectados). El BE 702
puede funcionar como, por ejemplo, un servidor en red 104.
El paquete de chip de la fig. 8 comprende dos PE
802 y 804 y dos VS 806 y 808. Una I/O 810 proporciona una interfaz
entre el paquete de chip y la red 104. La salida del paquete de chip
es una señal de video. Esta configuración puede funcionar como, por
ejemplo, una estación de trabajo gráfica.
La fig. 9 ilustra aun otra configuración. Esta
configuración contiene una mitad de la potencia de tratamiento de
la configuración ilustrada en la fig. 8. En lugar de dos PE, hay
previsto un PE 902, y en lugar de dos VS, hay previsto un VS 904.
La I/O 906 tiene una mitad del ancho de banda de la I/O ilustrada en
la fig. 8. Tal procesador también puede funcionar, sin embargo,
como una estación de trabajo gráfica.
Se ha mostrado una configuración final en la
fig. 10. Este procesador consiste de sólo un único VS 1002 y una
I/O 1004. Esta configuración puede funcionar como, por ejemplo, una
PDA.
La fig. 11A ilustra la integración de interfaces
ópticas en un paquete de chip de un procesador de red 104. Estas
interfaces ópticas convierten señales ópticas a señales eléctricas y
señales eléctricas a señales ópticas y pueden ser construidos a
partir de una variedad de materiales que incluyen, por ejemplo,
arseniuro de galio, arseniuro de aluminio galio, germanio y otros
elementos o compuestos. Como se ha mostrado en esta figura, las
interfaces ópticas 1104 y 1106 son fabricadas sobre el paquete de
chip de BE 1102. El bus 1108 del BE proporciona comunicación entre
los PE del BE 1102, particularmente, PE 1110, PE 1112, PE 1114, PE
1116, y estas interfaces ópticas. La interfaz óptica 1104 incluye
dos puertos, particularmente el puerto 1118 y el puerto 1120, y la
interfaz óptica 1106 también incluye dos puertos, principalmente, el
puerto 1122 y el puerto 1124. Los puertos 1118, 1120, 1122 y 1124
están conectados, respectivamente, a guías de onda óptica 1126,
1128, 1130 y 1132. Las señales ópticas son transmitidas hacia y
desde el BE 1102 a través de estas guías de onda óptica a través de
los puertos de interfaces ópticas 1104 y 1106.
Una pluralidad de BE pueden estar conectados
juntos en distintas configuraciones usando tales guías de onda
óptica y los cuatro puertos ópticos de cada BE. Por ejemplo, como se
ha mostrado en la fig. 11B, dos o más BE, por ejemplo, BE 1152, BE
1154 y BE 1156, pueden estar conectados en serie a través de tales
puertos ópticos. En este ejemplo, la interfaz óptica 1166 del BE
1152 está conectada a través de sus puertos ópticos a los puertos
ópticos de la interfaz óptica 1160 del BE 1154. De modo similar, los
puertos ópticos de la interfaz óptica 1162 en el BE 1154 están
conectados a los puertos ópticos de la interfaz óptica 1164 del BE
1156.
Se ha ilustrado una configuración de matriz en
la fig. 11C. En esta configuración, la interfaz óptica de cada BE
está conectada a otros dos BE. Como se ha mostrado en esta figura,
uno de los puertos ópticos de interfaz óptica 1188 de BE 1172 está
conectado a un puerto óptico de la interfaz óptica 1182 de BE 1176.
El otro puerto óptico de la interfaz óptica 1188 está conectado a
un puerto óptico de la interfaz óptica 1184 de BE 1178. De manera
similar, un puerto óptico de la interfaz óptica 1190 de BE 1174 está
conectado a otro puerto óptico de la interfaz óptica 1184 de BE
1178. El otro puerto óptico de la interfaz óptica 1190 está
conectado a un puerto óptico de la interfaz óptica 1186 de BE 1180.
Esta configuración de matriz puede ser extendida de forma similar a
otros BE.
Usando o bien una configuración en serie o bien
una configuración de matriz, puede construirse un procesador para
red 104 de cualquier tamaño y potencia deseados. Desde luego, pueden
añadirse puertos adicionales a las interfaces ópticas de los BE, o
a procesadores que tienen un mayor o menor número de PE que un BE,
para formar otras configuraciones.
La fig. 12A ilustra el sistema de control y la
estructura para la DRAM de un BE. Un sistema de control y estructura
similares son empleados en procesadores que tienen otros tamaños y
que contienen más o menos PE. Como se ha mostrado en esta figura,
un interruptor de travesaño conecta cada DMAC 1210 de los cuatro PE
que comprende el BE 1201 a ocho controles de banco 1206. Cada
control de banco 1206 controla ocho bancos 1208 (sólo se han
mostrado cuatro en la figura) de DRAM 1204. La DRAM 1204, por ello,
comprende un total de sesenta y cuatro bancos. En una realización
preferida, la DRAM 1204 tiene una capacidad de 64 megabytes, y cada
banco tiene una capacidad de 1 megabyte. La menor unidad accesible
dentro de cada banco, en esta realización preferida, es un bloque
de 1024 bits.
El BE 1201 también incluye la unidad de
conmutador 1212. La unidad de conmutador 1212 permite a otras APU
en los BE estar estrechamente acopladas al BE 1201 para acceder a la
DRAM 1204. Un segundo BE, por ello, puede estar estrechamente
acoplado a un primer BE, y cada APU de cada BE puede acceder dos
veces el número de posiciones de memoria normalmente accesibles a
una APU. La lectura o escritura directa de datos desde o a la DRAM
de un primer BE desde o a la DRAM de un segundo BE puede ocurrir a
través de una unidad de conmutador tal como la unidad de conmutador
1212.
Por ejemplo, como se ha mostrado en la fig. 12B,
para realizar tal escritura, la APU de un primer BE, por ejemplo,
la APU 1220 del BE 1222, emite una orden de escritura a una posición
de memoria de una DRAM de un segundo BE, por ejemplo, la DRAM 1228
del BE 1226 (en vez de, como en el caso normal, a la DRAM 1224 del
BE 1222). El DMAC 1230 del BE 1222 envía la orden de escritura a
través de un conmutador de cruz 1221 al control de banco 1234, y el
control de banco 1234 transmite la orden a un puerto externo 1232
conectado al control de banco 1234. El DMAC 1238 del BE 1226 recibe
la orden de escritura y transfiere esta orden a la unidad de
conmutador 1240 del BE 1226. La unidad de conmutador 1240 identifica
la dirección de la DRAM contenida en la orden de escritura y envía
los datos para almacenarlos en esta dirección a través del control
de banco 1242 del BE 1226 al banco 1244 de la DRAM 1228. La unidad
de conmutador 1240, por ello, permite tanto a la DRAM 1224 como a
la DRAM 1228 funcionar como un único espacio de memoria para las APU
del BE 1222.
La fig. 13 muestra la configuración de sesenta y
cuatro bancos de una DRAM. Estos bancos están dispuestos en ocho
filas, particularmente, las filas 1302, 1304, 1306, 1308, 1310,
1312, 1314 y 1316 y ocho columnas, particularmente, las columnas
1320, 1322, 1324, 1326, 1328, 1330, 1332 y 1334. Cada fila es
controlada por un controlador de banco. Cada controlador de banco,
por ello, controla ocho megabytes de memoria.
Las figs. 14A y 14B ilustran diferentes
configuraciones para almacenar y acceder a la menor unidad de
memoria accesible de una DRAM, por ejemplo, un bloque de 1024 bits.
En la fig. 14A, el DMAC 1402 almacena en un único banco 1404 ocho
bloques 1406 de 1024 bits. En la fig. 14B, por otro lado, mientras
el DMAC 1412 lee y escribe bloques de datos que contienen 1024
bits, estos bloques son entrelazados entre dos bancos,
particularmente, el banco 1414 y el banco 1416. Cada uno de estos
bancos, por ello, contiene dieciséis bloques de datos, y cada
bloque de datos contiene 512 bits. Este entrelazado puede facilitar
un acceso más rápido de la DRAM y es útil en el tratamiento de
algunas aplicaciones.
La fig. 15 ilustra la arquitectura para un DMAC
1506 dentro de un PE. Como se ha ilustrado en esta figura, el
hardware estructural que comprende el DMAC 1506 es distribuido
totalmente en el PE de tal modo que cada APU 1502 tiene un acceso
directo a un nudo estructural 1504 del DMAC 1506. Cada nudo ejecuta
la lógica apropiada para accesos de memoria por la APU a la que el
nodo tiene acceso directo.
La fig. 16 muestra una realización alternativa
del DMAC, particularmente, una arquitectura no distribuida. En este
caso, el hardware estructural del DMAC 1606 está centralizado. La
APU 1602 y la PU 1604 comunican con el DMAC 1606 a través del bus
local 1607 del PE. El DMAC 1606 está conectado a través de un
conmutador de cruz a un bus 1608. El bus 1608 está conectado a la
DRAM 1610.
Como se ha descrito antes, todas las múltiples
APU de un PE pueden acceder independientemente a datos en la DRAM
compartida. Como resultado, una primera APU podría estar operando
sobre datos particulares en su almacenamiento local en un instante
el cual una segunda APU solicita estos datos. Si los datos han sido
proporcionados a la segunda APU en ese instante desde la DRAM
compartida, los datos podrían ser inválidos debido al tratamiento
en curso de la primera APU que podría cambiar el valor de los datos.
Si el segundo procesador ha recibido los datos desde la DRAM
compartida en ese instante, por ello, el segundo procesador podría
generar un resultado erróneo. Por ejemplo, los datos podrían ser un
valor específico para una variable global. Si el primer procesador
ha cambiado ese valor durante su tratamiento, el segundo procesador
recibiría un valor no actualizado. Un esquema es necesario, por
ello, para sincronizar la lectura y escritura de datos de las APU
desde posiciones de memoria dentro de la DRAM compartida y a las
mismas. Este esquema debe impedir la lectura de datos desde una
posición de memoria después de que otra APU al mismo tiempo está
operando en su almacenamiento local y, por ello, que no son
actuales, y la escritura de datos a una posición de memoria que
almacena datos actuales.
Para resolver estos problemas, para cada
posición de memoria accesible de la DRAM, un segmento adicional de
memoria está asignado en la DRAM para almacenar la información de
estado relativa a los datos almacenados en la posición de memoria.
Esta información de estado incluye un bit de lleno/vacío (F/E), la
identificación de una APU (ID de la APU) que solicita datos desde
la posición de memoria y la dirección del almacenamiento local de
las APU (dirección del LS) al que los datos solicitados deberían ser
leídos. Una posición de memoria accesible de la DRAM puede ser de
cualquier tamaño. En una realización preferida, el tamaño es de 1024
bits.
El ajuste del bit de F/E a 1 indica que los
datos almacenados en la posición de memoria asociada son actuales.
El ajuste del bit de F/E a 0, por otro lado, indica que los datos
almacenados en la posición de memoria asociada no son actuales. Si
una APU solicita los datos cuando este bit está ajustado a 0, se le
impide a la APU leer inmediatamente los datos. En este caso, una ID
de la APU que identifica la APU que solicita los datos, y una
dirección del LS que identifica la posición de memoria dentro del
almacenamiento local de esta APU a la que los datos han de ser
leídos cuando los datos resulten actuales, son introducidos en el
segmento de memoria adicional.
Un segmento de memoria adicional también está
asignado para cada posición de memoria dentro del almacenamiento
local de las APU. Este segmento de memoria adicional almacena un
bit, designado el "bit ocupado". El bit ocupado es usado para
reservar la posición de memoria del LS asociada para el
almacenamiento de datos específicos que han de ser recuperados
desde la DRAM. Si el bit ocupado es ajustado a 1 para una posición
de memoria particular en el almacenamiento local, la APU puede usar
esta posición de memoria solo para la escritura de estos datos
específicos. Por otro lado, si el bit ocupado es ajustado a 0 para
una posición de memoria particular en el almacenamiento local, la
APU puede usar esta memoria para la escritura de cualquier dato.
Ejemplos de la manera en la que el bit de F/E,
la ID de la APU, la dirección del LS y el bit ocupado son usados
para sincronizar la lectura y escritura de datos desde y a la DRAM
compartida de un PE están ilustrados en las figs.
17A-17O.
Como se ha mostrado en la fig. 17A, uno o más
PE, por ejemplo el PE 1720 interactúa con la DRAM 1702. El PE 1720
incluye la APU 1722 y la APU 1740. La APU 1722 incluye la lógica de
control 1724, y la APU 1740 incluye la lógica de control 1742. La
APU 1722 incluye también el almacenamiento local 1726. Este
almacenamiento local incluye una pluralidad de posiciones de
memoria accesibles 1728. La APU 1740 incluye el almacenamiento local
1744, y este almacenamiento local incluye también una pluralidad de
posiciones de memoria accesibles 1746. Todas estas posiciones de
memoria accesibles son preferiblemente de 1024 bits de tamaño.
Un segmento adicional de memoria está asociado
con cada posición de memoria accesible de LS. Por ejemplo, los
segmentos de memoria 1729 y 1734 están asociados respectivamente con
posiciones de memoria local 1731 y 1732, y el segmento de memoria
1752 está asociado con la posición de memorial local 1750. Un "bit
de ocupación" como se ha descrito antes, está almacenado en cada
uno de estos segmentos de memoria adicionales. La posición de
memoria local 1732 está mostrada con varias X para indicar que esta
posición contiene datos.
La DRAM 1702 contiene una pluralidad de
posiciones de memoria accesibles 1704, incluyendo posiciones de
memoria 1706 y 1708. Estas posiciones de memoria son
preferiblemente también de 1024 bits de tamaño. Un segmento
adicional de memoria está también asociado con cada una de estas
posiciones de memoria. Por ejemplo, el segmento de memoria
adicional 1760 está asociado con la posición de memoria 1706, y el
segmento de memoria adicional 1762 está asociado con la posición de
memoria 1708. La información de estado relacionada con los datos
almacenados en cada posición de memoria es almacenada en el
segmento de memoria asociado con la posición de memoria. Esta
información de estado incluye, como se ha descrito antes, el bit de
F/E, la ID de la APU y la dirección de LS. Por ejemplo, para la
posición de memoria 1708, esa información de estado incluye el bit
de F/E 1712, la ID de la APU 1714 y la dirección de LS 216.
Usando la información de estado y el bit de
ocupación, la lectura y escritura sincronizadas de datos desde la
DRAM compartida y a la misma entre las APU de un PE, o un grupo de
PE, puede ser conseguida.
La fig. 17B ilustra la iniciación de la
escritura sincronizada de datos desde la posición de memoria de LS
1732 de APU 1722 a la posición de memoria 1708 de la DRAM 1702. El
control 1724 de la APU 1722 inicia la escritura sincronizada de
estos datos. Como la posición de memoria 1708 está vacía, el bit de
F/E 1712 es ajustado a 0. Como resultado, los datos en la posición
de LS 1732 pueden ser escritos en la posición de memoria 1708. Si
este bit fuera ajustado a 0 para indicar que la posición de memoria
1708 está llena y contiene datos actuales, válidos, por otro lado,
el control 1722 recibiría un mensaje de error y se prohibiría
escribir datos en esta posición de memoria.
El resultado de la escritura sincronizada
satisfactoria de los datos en la posición de memoria 1708 está
mostrado en la fig. 17C. Los datos escritos son almacenados en la
posición de memoria 1708 y el bit de F/E es ajustado a 1. Este
ajuste indica que la posición de memoria 1708 está llena y que los
datos en esta posición de memoria son actuales y válidos.
\newpage
La fig. 17D ilustra la iniciación de la lectura
sincronizada de datos desde la posición de memoria 1708 de la DRAM
1702 a la posición de memoria de LS 1750 del almacenamiento local
1744. Para iniciar esta lectura, el bit de ocupación en el segmento
de memoria 1752 de la posición de memoria de LS 1750 es ajustado a 1
para reservar esta posición de memoria para estos datos. El ajuste
de este bit de ocupación a 1 impide que la APU 1740 almacene otros
datos en esta posición de memoria.
Como se ha mostrado en la fig. 17E, la lógica de
control 1742 siguiente emite una orden de lectura sincronizada para
la posición de memoria 1708 de la DRAM 1702. Como el bit de F/E 1712
asociado con esta posición de memoria es ajustado a 1, los datos
almacenados en la posición de memoria 1708 son considerados actuales
y válidos. Como resultado, en preparación para transferir los datos
desde la posición de memoria 1708 a la posición de memoria de LS
1750, el bit de F/E 1712 es ajustado a 0. Este ajuste está mostrado
en la fig. 17F. El ajuste de este bit a 0 indica, que después de la
lectura de estos datos, los datos en la posición de memoria 1708
serán inválidos.
Como se ha mostrado en la fig. 17G, los datos
dentro de la posición de memoria 1708 siguiente son leídos desde la
posición de memoria 1708 a la posición de memoria de LS 1750. La
fig. 17H muestra el estado final. Una copia de los datos en la
posición de memoria 1708 es almacenada en la posición de memoria de
LS 1750. El bit de F/E 1712 es ajustado a 0 para indicar que los
datos en la posición de memoria 1708 son inválidos. Esta invalidez
es el resultado de alteraciones de estos datos que han de ser hechas
por la APU 1740. El bit de ocupación en el segmento de memoria 1752
es también ajustado a 0. Este ajuste indica que la posición de
memoria de LS 1750 está ahora disponible a la APU 1740 para
cualquier propósito, es decir, esta posición de la memoria de LS ya
no está en un estado reservado esperando la recepción de datos
específicos. La posición de la memoria de LS 1750, por ello, puede
ahora ser accedida por la APU 1740 para cualquier propósito.
Las figs. 17I-17O ilustran la
lectura sincronizada de datos desde una posición de memoria de la
DRAM 1702, por ejemplo posición de memoria 1708, a una posición de
memoria de LS de un almacenamiento local de la APU, por ejemplo,
posición de memoria de LS 1752 de almacenamiento local 1744, cuando
el bit F/E para la posición de memoria de DRAM 1702 es ajustado a 0
para indicar que los datos en esta posición de memorias no son
actuales o válidos. Como se ha mostrado en la fig. 17I, para
iniciar esta transferencia, el día de ocupación en el segmento de
memoria 1752 de la posición de memoria de LS 1750 es ajustado a 1
para reservar esta posición de memoria de LS para esta
transferencia de datos. Como se ha mostrado en la fig. 17J, la
lógica de control 1742 siguiente emite una orden de lectura
sincronizada para posición de memoria 1708 de la DRAM 1702. Como el
bit F/E asociado con esta posición de memoria, el bit de F/E 1712,
es ajustado a 0, los datos almacenados en la posición de memoria
1708 son inválidos. Como resultado, una señal es transmitida a la
lógica de control 1742 para bloquear la lectura inmediata de datos
desde esta posición de memoria.
Como se ha mostrado en la fig. 17K, la ID de la
APU 1714 y la dirección de LS 1716 para esta orden de lectura
siguiente están escritas en el segmento de memoria 1782. En este
caso, la ID de la APU para la APU 1740 y la posición de memoria de
LS para la posición de memoria de LS 1750 están escritas en el
segmento de memoria 1762. Cuando los datos situados dentro de la
posición de memoria 1708 resultan actuales, por ello, esta ID de la
APU y posición de memoria de LS son usadas para determinar la
posición a la que los datos actuales han de ser transmitidos.
Los datos en la posición de memoria 1708
resultan válidos y actuales cuando una APU escribe datos en esta
posición de memoria. La escritura sincronizada de datos en la
posición en memoria 1708 desde, por ejemplo, la posición de memoria
1732 de la APU 1722 está ilustrada en la fig. 17L. Esta escritura
sincronizada de estos datos es permitida debido a que el bit de F/E
1712 para esta posición de memoria es ajustado a 0.
Como se ha mostrado en la fig. 17M, después de
esta escritura, los datos en la posición de memoria 1708 resultan
actuales y válidos. La ID de la APU 1714 y la dirección de LS 1716
procedente del segmento de memoria 1762, por ello, son
inmediatamente leídas desde el segmento de memoria 1782, y esta
información es a continuación borrada de este segmento. El bit de
F/E 1712 es también ajustado a 0 en anticipación de la lectura
inmediata de los datos en la posición de memoria 1708. Como se ha
mostrado en la fig. 17N, después de leer la ID de la APU 1714 y la
dirección de LS 1716, esta información es usada inmediatamente para
leer los datos válidos en la posición de memoria 1708 a la posición
de memoria de LS 1750 de la APU 1740. El estado final está mostrado
en la fig. 17O. Esta figura muestra los datos válidos procedentes de
la posición de memoria 1708 copiados a la posición de memoria 1750,
el bit de ocupación en el segmento de memoria 1752 ajustado a 0 y el
bit de F/E 1712 en el segmento de memoria 1762 ajustado a 0. El
ajuste de este bit de ocupación a 0 permite que la posición de
memoria de LS 1750 sea ahora accedida por la APU 1740 para cualquier
propósito. El ajuste de este bit de F/E a 0 indica que los datos en
la posición de memoria 1708 ya no son actuales ni válidos.
La fig. 18 resume las operaciones descritas
anteriormente y los distintos estados de una posición de memoria de
la DRAM basado en los estados del bit de F/E, la ID de la APU y la
dirección de LS almacenados en el segmento de memoria
correspondiente a la posición de memoria. La posición de memoria
puede tener tres estados. Estos tres estados son un estado vacío
1880 en el que el bit de F/E es ajustado a 0 y no se proporciona
información para la ID de la APU o la dirección de LS, un estado
lleno 1882 en el que el bit de F/E es ajustado a 1 y no se
proporciona información para la ID de la APU o la dirección de LS y
un estado de bloqueo 1884 en el que el bit de F/E es ajustado a 0 y
se proporciona información para la ID de la APU y la dirección de
LS.
\newpage
Como se ha mostrado en esta figura, en el estado
vacío 1880, se permite una operación de escritura sincronizada y da
como resultado una transición al estado lleno 1882. Una operación de
lectura sincronizada, sin embargo, da como resultado una transición
al estado de bloqueo 1884 debido a que los datos en la posición de
memoria, cuando la posición de memoria está en el estado vacío, no
son actuales.
En el estado lleno 1882, se permite una
operación de lectura sincronizada y da como resultado una transición
al estado vacío 1880. Por otro lado, una operación de escritura
sincronizada en el estado lleno 1882 es prohibida para impedir la
sobrescritura de datos válidos. Si tal operación de escritura es
intentada en este estado, no ocurren cambios de estado y se
transmite un mensaje de error a la lógica de control correspondiente
de las APU.
En el estado de bloqueo 1884, la escritura
sincronizada de datos en la posición de memoria es permitida y da
como resultado una transición al estado vacío 1880. Por otro lado,
un operación de lectura sincronizada en el estado de bloqueo 1884
es prohibida para impedir un conflicto con la operación lecturas
sincronizada anterior que da como resultado este estado. Si se
intenta una operación de lectura sincronizada en estado de bloqueo
1884, no ocurren cambios de estado y se tramite un mensaje de error
a la lógica de control correspondiente de la APU.
El esquema descrito anteriormente para la
lectura y escritura sincronizadas de datos desde y a la DRAM
compartida también puede ser usado también para eliminar los
recursos informáticos normalmente dedicados por un procesador para
leer datos desde dispositivos externos y escribir datos en ellos.
Esta función de entrada/salida (I/O) podría ser realizada por una
PU. Sin embargo, usando una modificación de este esquema de
sincronización, una APU que ejecuta un programa apropiado puede
realizar esta función. Por ejemplo, usando este esquema, una PU que
recibe una solicitud de interrupción para la transmisión de datos
desde una interfaz de I/O iniciada por un dispositivo externo puede
delegar la manipulación de esta solicitud a esta APU. La APU emite
entonces una orden de escritura sincronizada a la interfaz de I/O.
Esta interfaz a su vez señala al dispositivo externo que los datos
pueden ser escritos ahora en la DRAM. La APU siguiente emite una
orden de lectura sincronizada a la DRAM para ajustar el espacio de
memoria importante de la DRAM en un estado de bloqueo. La APU
también ajusta a 1 los bits de ocupación para las posiciones de
memoria del almacenamiento local de la APU necesarias para recibir
los datos. En el estado de bloqueo, los segmentos de memoria
adicional asociados con el espacio de memoria importante de la DRAM
contienen la ID de la APU y la dirección de las posiciones de
memoria importantes del almacenamiento local de la APU. El
dispositivo externo siguiente emite una orden de escritura
sincronizada para escribir los datos directamente al espacio de
memoria importante de la DRAM. Como este espacio de memoria está en
el estado de bloqueo, los datos son inmediatamente leídos de este
espacio en las posiciones de memoria del almacenamiento local de la
APU identificados en los segmentos de memoria adicionales. Los bits
de ocupación para estas posiciones de memorias son entonces
ajustados a 0. Cuando el dispositivo externo completa la escritura
de los datos, la APU emite una señal a la PU de que la transmisión
está completada.
Usando este esquema, por ello, las
transferencias de datos desde dispositivos externos pueden ser
tratadas con una carga informática mínima sobre la PU. La APU que
ha delegado esta función, sin embargo, debería ser capaz de emitir
una solicitud de interrupción a la PU, y el dispositivo externo
debería tener acceso directo a la DRAM.
La DRAM de cada PE incluye una pluralidad de
entornos restringidos. Un entorno restringido define un área de la
DRAM compartida más allá de la cual una APU particular, o un
conjunto de APU, no puede leer o describir datos. Estos entornos
restringidos proporcionan seguridad contra la corrupción de datos
que son tratados por una APU por datos que son tratados por otra
APU. Estos entornos restringidos también permiten la descarga de
celdas de software desde la red 104 a un entorno restringido
particular sin la posibilidad de que la celda de software corrompa
datos en todas la DRAM. En el presente invento, los entornos
restringidos son implantados en el hardware de las DRAM y los DMAC.
Implantando las entornos restringidos en este hardware en vez de en
el software, se obtienen ventajas en la velocidad y en la
seguridad.
La PU de un PE controla los entornos
restringidos asignados a las APU. Como la PU ejecuta solo programas
de confianza, tales como un sistema operativo, este esquema pone en
peligro la seguridad. De acuerdo con este esquema, la PU construye
y mantiene una tabla de control de claves. Esta tabla de control de
claves está ilustrada en la fig. 19. Como se ha mostrado en esta
figura, cada entrada en la tabla 1902 de control de claves contiene
una identificación (ID) 1904 para una APU, una clave 1906 de APU
para esa APU y una máscara de claves 1908. El uso de esta máscara
de claves es explicado a continuación. La tabla 1902 de control de
claves es almacenada preferiblemente en una memoria relativamente
rápida, tal como una memoria estática de acceso aleatorio (SRAM), y
es asociada con el DMAC. Las entradas en la tabla 1902 de control de
claves son controladas por la PU. Cuando una APU solicita la
escritura de datos, o la lectura de datos desde, una posición de
almacenamiento particular de la DRAM, el DMAC evalúa la clave 1906
de APU asignada a esa APU en la tabla 1902 de control de claves
contra una clave de acceso de memoria asociada con esta posición de
almacenamiento.
Como se ha mostrado en la fig. 20, un segmento
2010 de memoria dedicado es asignado a cada posición 2006 de
almacenamiento accesible de una DRAM 2002. Una clave 2012 de acceso
a la memoria para la posición de almacenamiento es almacenada en
este segmento de memoria dedicado. Como se ha descrito antes, otro
segmento 2008 de memoria dedicado adicional, también asociado con
cada posición 2006 de almacenamiento accesible, almacena la
información de sincronización para escribir datos en la posición de
memoria, y leer datos desde ella.
En funcionamiento, una APU emite una orden de
DMA al DMAC. Esta orden incluye la dirección de una posición 2006
de almacenamiento de la DRAM 2002. Antes de ejecutar esta orden, el
DMAC busca la clave 1906 de la APU solicitante en la tabla 1902 de
control de claves usando la ID 1904 de la APU. El DMAC compara
entonces la clave 1906 de la APU de la APU solicitante a la clave
2012 de acceso a la memoria almacenada en el segmento 2010 de
memoria dedicado asociado con la posición de almacenamiento de la
DRAM a la que busca acceso la APU. Si las dos claves no coinciden,
la orden de DMA no es ejecutada. Por otro lado, si las dos claves
coinciden, la orden de DMA continúa y el acceso a la memoria
solicitado es ejecutado.
Una realización alternativa está ilustrada en la
fig. 21. En esta realización, la PU también mantiene una tabla 2102
de control de acceso a la memoria. La tabla 2102 de control de
acceso a la memoria contiene una entrada para cada entorno
restringido dentro de la DRAM. En el ejemplo particular de la fig.
21, la DRAM contiene 64 entornos restringidos. Cada entrada en la
tabla 2102 de control de acceso a la memoria contiene una
identificación (ID) 2104 para un entorno restringido, una dirección
2106 de memoria de base, un tamaño 2108 de entorno restringido, una
clave 2110 de acceso a la memoria y una máscara 2110 de claves de
acceso. La dirección 2106 de memoria de base proporciona la
dirección a la DRAM que inicia un entorno restringido de memoria
particular. El tamaño 2108 del entorno restringido proporciona el
tamaño del entorno restringido y, por ello, el punto final del
entorno restringido particular.
La fig. 22 es un diagrama de flujo de las
operaciones para ejecutar una orden de DMA usando la tabla 1902 de
control de claves y la tabla 2102 de control de acceso a la memoria.
En la operación 2202, una APU emite una orden de DMA al DMAC para
el acceso a una posición o posiciones de memoria particular dentro
de un entorno restringido. La orden incluye una ID 2104 de entorno
restringido que identifica el entorno restringido particular para
el que es solicitado el acceso. En la operación 2204, el DMAC busca
la clave 1906 de las APU solicitantes en la tabla 1902 de control
de claves usando la ID 1904 de las APU. En la operación 2206, el
DMAC usa la ID 2104 de entorno restringido en la orden para buscar
en la tabla 2102 de control de acceso a la memoria la clave 2110 de
acceso a la memoria asociada con el entorno restringido. En la
operación 2208, el DMAC compara la clave 1906 de la APU asignada a
la APU solicitante con la clave 2110 de acceso asociada con el
entorno restringido. En la operación 2210, se hace una
determinación de si coinciden las dos claves. Si las dos claves no
coinciden, el proceso se mueve a la operación 2212 donde la orden de
DMA no prosigue y un mensaje de error es enviado bien a la APU
solicitante, o bien a la PU o a ambas. Por otro lado, si en la
operación 2210 se ha encontrado que las dos claves coinciden, el
proceso continúa a la operación 2214 donde el DMAC ejecuta la orden
de DMA.
Las máscaras de claves para las claves de la APU
y las claves de la memoria de acceso proporcionan una mayor
flexibilidad a este sistema. Una máscara de claves para una clave
convierte un bit enmascarado en un comodín o carácter de
reemplazamiento. Por ejemplo, si la máscara de claves 1908 asociada
con la clave de la APU 1906 tiene sus dos últimos bits ajustados a
la "máscara" designada por ejemplo, ajustando estos bits en la
máscara de claves 1908 a 1, la clave de la APU puede ser o bien un
1 o bien un 0 y aún coincidir con la clave de acceso a la memoria.
Por ejemplo, la clave de la APU podría ser 1010. Esta clave de APU
normalmente permite acceso a un entorno restringido que tiene una
clave de acceso de 1010. Si la máscara de claves de la APU para esta
clave de APU es ajustada a 0001, sin embargo, entonces esta clave
de APU puede ser usada para ganar acceso a entornos restringidos
que tienen una clave de acceso o bien de 1010 o bien de 1011.
Similarmente, una clave de acceso 1010 con un ajuste de máscara a
0001 puede ser accedida por una APU con una clave de APU o bien de
1010 o bien de 1011. Como tanto la máscara de claves de la APU como
la máscara de claves de la memoria pueden ser usadas
simultáneamente, pueden ser establecidas numerosas variaciones de
accesibilidad por las APU a los entornos restringidos.
El presente invento proporciona también un
modelo de programación para los procesadores del sistema 101. Este
modelo de programación emplea celdas 102 de software. Estas celdas
pueden ser transmitidas a cualquier procesador en la red 104 para
su tratamiento. Este nuevo modelo de programación también utiliza la
arquitectura modular única del sistema 101 y los procesadores del
sistema 101.
Las celdas de software son tratadas directamente
por las APU a partir del almacenamiento local de las APU. Las APU
no operan directamente sobre ningún dato ni programa en la DRAM.
Datos y programas en la DRAM son leídos en el almacenamiento local
de la APU antes de que la APU procese estos datos y programas. El
almacenamiento local de las APU, por ello, incluye un contador,
apilamiento de programas y otros elementos de software para
ejecutar estos programas. La PU controlaba las APU emitiendo órdenes
de acceso directo a la memoria (DMA) al DMAC.
La estructura de celda 102 de software está
ilustrada en la fig. 23. Como se ha mostrado en esta figura, una
celda de software, por ejemplo la celda 2302 de software contiene la
sección 2304 y el cuerpo 2306 de información de encaminamiento. La
información contenida en la sección 2304 de información de
encaminamiento depende del protocolo de red 104. La sección 2304 de
información de encaminamiento contiene el encabezamiento 2308, la
ID de destino 2310, la ID de fuente 2312 y la ID de réplica 2314. La
ID de destino incluye una dirección de red. Bajo el protocolo
TCP/IP, por ejemplo, la dirección de red es una dirección de
protocolo de Internet (IP). La ID de destino 2310 incluye además la
identidad de la PE y la APU a la que la celda debía ser transmitida
para su tratamiento. La ID de la fuente 2314 contiene una dirección
de red e identifica la PE y la APU a partir de las cuales la celda
se ha originado para permitir el destino de PE y APU para obtener
información adicional relativa a la celda si fuera necesario. La ID
de la réplica 2314 contiene una dirección de red e identifica el PE
y la APU a las que deberían ser dirigidas solicitudes relativas a la
celda, y el resultado del tratamiento de la celda.
El cuerpo 2306 de la celda contiene información
independiente del protocolo de la red. La parte despiezada
ordenadamente de la fig. 23 muestra los detalles del cuerpo 2306 de
la celda. El encabezamiento 2320 del cuerpo 2306 de la celda
identifica el comienzo del cuerpo de la celda. La interfaz 2322 de
la celda contiene información necesaria para la utilización de la
celda. Esta información incluye una ID global única 2324, las APU
2326 requeridas, el tamaño 2328 del entorno restringido y la ID
previa de la celda 2330.
La ID única global 2324 identifica únicamente la
celda 2302 de software a través de la red 104. La ID única global
2324 es generada sobre la base de la ID de la fuente 2312, por
ejemplo la identificación única de un PE o una APU dentro de la ID
de fuente 2312, y el tiempo y fecha de generación o transmisión de
la celda 2302 de software. Las APU requeridas 2326 proporcionan el
número mínimo de APU requeridas para ejecutar la celda. El tamaño
2328 del entorno restringido proporciona la cantidad de memoria
protegida en la DRAM asociada a las APU requeridas necesaria para
ejecutar la celda. La ID 2330 de la celda previa proporciona la
identidad de una celda previa en un grupo de celdas que requieren
ejecución secuencial, por ejemplo una corriente de datos.
La sección 2332 de puesta en práctica contiene
la información del núcleo de la celda. Esta información incluye la
lista de órdenes 2334 de DMA, los programas 2336 y los datos 2338.
Los programas 2336 contienen los programas que han de ser
ejecutados por unas APU (llamados "apulets"), por ejemplo los
programas de las APU 2360 y 2362, y los datos 2338 contienen los
datos que han de ser tratados con estos programas. La lista de
órdenes 2334 de DMA contiene una serie de órdenes de DMA necesarias
para iniciar los programas. Estas órdenes de DMA incluyen órdenes
de DMA 2340, 2350, 2355 y 2358. La PU emite estas órdenes de DMA al
DMAC.
Las órdenes de DMA 2340 incluyen la VID 2342. La
VID 2342 es la ID virtual de una APU que se hace corresponder a una
ID física cuando las órdenes de DMA son emitidas. La orden de DMA
2340 incluye también una orden de carga 2344 y dirección 2346. La
orden de carga 2344 dirige la APU para leer información particular
desde la DRAM al almacenamiento local. La dirección 2346
proporciona la dirección virtual en la DRAM que contiene esta
información. La información puede ser, por ejemplo, programas a
partir de la sección de programas 2336, datos a partir de la
sección de datos 2338 u otros datos. Finalmente, la orden de DMA
2340 incluye la dirección 2348 de almacenamiento local. Esta
dirección identifica la dirección en el almacenamiento local donde
debería ser cargada la información. Las órdenes de DMA 2350
contienen información similar. Son también posibles otras órdenes
de DMA.
La lista 2334 de órdenes de DMA también incluye
una serie de órdenes de expulsión ("kick"), por ejemplo órdenes
de expulsión 2355 y 2358. Las órdenes de expulsión son órdenes
emitidas por una PU a una APU para iniciar el tratamiento de una
celda. La orden de DMA 2355 incluye la ID virtual de APU 2352, la
orden de expulsión 2354 y el contador de programa 2356. La ID
virtual de APU 2352 identifica la APU que ha de ser expulsada, la
orden de expulsión 2354 proporciona la orden de expulsión importante
y el contador de programa 2356 proporciona la dirección para el
contador de programa para ejecutar el programa. La orden de
expulsión de DMA 2358 proporciona información similar para la misma
APU u otra APU.
Como se ha observado, las PU tratan a las APU
como procesadores independientes, no coprocesadores. Para controlar
el tratamiento por las APU, por ello, la PU usa ordenes análogas a
las llamadas de procedimiento remotas. Estas órdenes son designadas
"Llamadas de Procedimiento Remotas de la APU" (ARPC). Una PU
pone en práctica una ARPC emitiendo una sede de órdenes de DMA al
DMAC. El DMAC carga el programa de APU y su imagen de apilamiento
asociado al almacenamiento local de una APU. La PU emite entonces
una expulsión inicial a la APU para ejecutar el Programa de
APU.
La fig. 24 ilustra las operaciones de un ARPC
para ejecutar un "apulet". Las operaciones realizadas por la
PU al iniciar el tratamiento del "apulet" por una APU designada
están mostradas en la primera parte 2402 de la fig. 24, y las
operaciones realizadas por la APU designada en el tratamiento del
"apulet" están mostradas en la segunda parte 2404 de la fig.
24.
En la operación 2410, la PU evalúa el
"apulet" y a continuación designa una APU para tratar el
"apulet". En la operación 2412, la PU asigna espacio en la
DRAM para ejecutar el "apulet" emitiendo una orden de DMA al
DMAC para ajustar las claves de acceso a la memoria para el entorno
restringido o los entornos restringidos necesarios. En la operación
2414, la PU permite una solicitud de interrupción para la APU
designada para señalar la terminación del "apulet". En la
operación 2418, la PU emite una orden de DMA al DMAC para cargar el
"apulet" desde la DRAM al almacenamiento local de la APU. En
la operación 2420, la orden de DMA es ejecutada, y el "apulet"
es leído desde la DRAM al almacenamiento local de las APU. En la
operación 2422, la PU emite una orden de DMA a la DMAC para cargar
el imagen de apilamiento asociado con el "apulet" desde la DRAM
al almacenamiento local de las APU. En la operación 2423, la orden
de DMA es ejecutada y el imagen de apilamiento es leído desde la
DRAM al almacenamiento local de las APU. En la operación 2424, la PU
emite una orden de DMA para el DMAC para asignar una clave a la APU
para permitir que la APU lea y escriba datos desde y al entorno
restringido o entornos restringidos designados en la operación
2412. En la operación 2426, el DMAC actualiza la tabla de control
de claves (KTAB) con la clave asignada a la APU. En la operación
2428, la PU emite una orden de "expulsión" de la DAM a la APU
para iniciar el tratamiento del programa. Otras órdenes de DMA
pueden ser emitidas por la unidad en la ejecución de un ARPC
particular dependiendo del "apulet" particular.
Como se ha indicado anteriormente, la segunda
parte 2404 de la fig. 24 ilustra las operaciones realizadas por la
APU al ejecutar el "apulet". En la operación 2430, la APU
comienza a ejecutar el "apulet" en respuesta a la orden de
expulsión emitida en la operación 2428. En la operación 2432, la
APU, en la dirección del "apulet", evalúa el imagen de
apilamiento asociado al "apulet". En la operación 2434, la APU
emite múltiples órdenes DMA al DMAC para cargar datos asignados
cuando sea necesario por el imagen de apilamiento desde la DRAM al
almacenamiento local de las APU. En la operación 2436, estas órdenes
de DMA son ejecutadas, y los datos son leídos desde la DRAM al
almacenamiento local de las APU. En la operación 2438, la APU
ejecuta el "apulet" y genera un resultado. En la operación
2440, la APU emite una orden de DMA al DMAC para almacenar el
resultado en la DRAM. En la operación 2442, la orden de DMA es
ejecutada y el resultado del "apulet" es escrito desde el
almacenamiento local de las APU a la DRAM. En la operación 2444, la
APU emite una solicitud de interrupción a la PU para señalar que el
ARPC ha sido completado.
La capacidad de las APU para realizar tareas
independientemente bajo la dirección de una PU permite que una PU
dedique un grupo de APU, y los recursos de memoria asociados con un
grupo de APU, para realizar tareas extendidas. Por ejemplo, una PU
puede dedicar una o más APU, y un grupo de entornos restringidos de
memoria asociados con estas una o más APU, para recibir datos
transmitidos sobre la red 104 durante un período prolongado y para
dirigir los datos recibidos durante este período a una o más APU
distintas y sus entornos restringidos de memoria asociados para un
tratamiento adicional. Esta capacidad es particularmente ventajosa
para tratar una corriente de datos transmitidos sobre la red 104,
por ejemplo una corriente de MPEG o una corriente de datos de audio
o de video ATRAC. Una PU puede dedicar una o más APU y sus entornos
restringidos de memoria asociados para recibir estos datos y una o
más APU distintas y sus entornos restringidos de memoria asociados
para descomprimir y tratar adicionalmente estos datos. En otras
palabras, la PU puede establecer una relación de tubería dedicada
entre un grupo de APU y sus entornos restringidos de memoria
asociados para tratar tales datos.
A fin de que tal tratamiento sea realizado
eficientemente, sin embargo, las APU de tubería dedicada y las
entornos restringidos deberían permanecer dedicados a la tubería
durante períodos en los que el tratamiento de "apulets" que
comprenden la corriente de datos no ocurre. En otras palabras, las
APU dedicadas y sus entornos restringidos asociados deberían ser
colocadas en un estado reservado durante estos períodos. La reserva
de una APU y su entorno restringido o entornos restringidos de
memoria asociados al terminar el tratamiento de un "apulet" es
denominada una "terminación residente". Una terminación
residente ocurre en respuesta a una instrucción procedente de una
PU.
Las figs. 25, 26A y 26B ilustran el
establecimiento de una estructura de tubería dedicada que comprende
un grupo de APU y sus entornos restringidos asociados para el
tratamiento de la corriente de datos, por ejemplo corriente de
datos MPEG. Como se ha mostrado en la fig. 25, los componentes de
esta estructura de tubería incluyen el PE 2502 y la DRAM 2518. El
PE 2502 incluye la PU 2504, el DMAC 2506 y una pluralidad de APU,
incluyendo la APU 2508, la APU 2510 y la APU 2512. Las
comunicaciones entre la PU 2504, el DMAC 2506 y estas APU ocurren a
través del bus 2514 del PE. El bus 2516 de ancho de banda amplio
conecta el DMAC 2506 a la DRAM 2518. La DRAM 2518 incluye una
pluralidad de entornos restringidos por ejemplo el entorno
restringido 2520, el entorno restringido 2522, el entorno
restringido 2524 y el entorno restringido 2526.
La fig. 26A ilustra las operaciones para
establecer la tubería dedicada. En la operación 2610, la PU 2504
asigna a la APU 2508 para tratar un "apulet" de red. Un
"apulet" de red comprende un programa para tratar el protocolo
de red de la red 104. En este caso, este protocolo es el Protocolo
de Control de Transmisión/Protocolo de Internet (TCP/IP). Los
paquetes de datos de TCP/IP que son conformes a este protocolo son
trasmitidos sobre la red 104. A la recepción, la APU 2508 procesa
estos paquetes y ensambla los datos en los paquetes en las celdas
102 de software. En la operación 2612, la PU 2504 instruye a la APU
2508 para realizar terminaciones residentes a la terminación del
tratamiento del "apulet" de red. En la operación 2614, la PU
2504 asigna las APU 2510 y 2512 para tratar "apulets" de MPEG.
En la operación 2616, la PU 2504 designa el entorno restringido
2520 como un entorno restringido fuente para acceso por la APU 2508
y la APU 2510. En la operación 2618, la PU 2504 designa al entorno
restringido 2522 como un entorno restringido de destino para acceso
por la APU 2510. En la operación 2620, la PU 2504 designa al
entorno restringido 2524 como un entorno restringido fuente para
acceso por la APU 2508 y la APU 2512. En la operación 2622, la PU
2504 designa al entorno restringido 2526 como un entorno
restringido de destino para acceso por la APU 2512. En la operación
2624, la APU 2510 y la APU 2512 envían órdenes de lectura
sincronizadas a los bloques de memoria dentro, respectivamente, del
entorno restringido fuente 2520 y del entorno restringido fuente
2524 para ajustar estos bloques de memoria al estado de bloqueo. El
proceso finalmente se mueve a la operación 2628 donde el
establecimiento del tubería dedicado es completo y los recursos
dedicados al tubería son reservados. Las APU 2508, 2510 y 2512 y sus
entornos restringidos asociados 2520, 2522, 2524 y 2526, por ello,
entran en el estado
reservado.
reservado.
La fig. 26B ilustra las operaciones para tratar
la corriente de datos de MPEG por este tubería dedicado. En la
operación 2630, la APU 2508, que trata el "apulet" de red,
recibe en su almacenamiento local paquetes de datos de TCP/IP desde
la red 104. En la operación 2632, la APU 2508 trata estos paquetes
de datos de TCP/IP y ensambla los datos dentro de estos paquetes en
celdas de software 102. En la operación 2634, la APU 2508 examina
el encabezamiento 2320 (fig. 23) de las celdas de software para
determinar si las celdas contienen datos de MPEG. Si una celda no
contiene datos de MPEG, entonces, en la operación 2636, la PU 2508
transmite la celda a un entorno restringido de propósito general
designado dentro de la DRAM 2518 para tratar otros datos por otras
APU incluidas dentro del tubería dedicado. Las APU 2508 también
notifican a la PU 2504 de esta transmisión.
Por otro lado, si una celda de software contiene
una corriente de datos de MPEG, entonces, en la operación 2638, la
APU 2508 examina la ID de la celda previa 2330 (fig. 23) de la celda
para identificar la corriente de datos de MPEG a los que pertenece
la celda. En la operación 2640, la APU 2508 elige una APU del
tubería dedicado para el tratamiento de la celda. En este caso, la
APU 2508 elige la APU 2510 para tratar estos datos. Esta elección
está basada en la ID de la celda previa 2330 y los factores de
equilibrado de carga. Por ejemplo, si la ID de la celda previa 2330
indica que la celda de software previa de la corriente de datos de
MPEG a la que pertenece la celda de software fue enviada a la APU
2510 para tratamiento, entonces la celda de software presente
normalmente también la enviará a la APU 2510 para su tratamiento. En
la operación 2642, la APU 2508 emite una orden de escritura
sincronizada para escribir los datos de MPEG en el entorno
restringido 2520. Como este entorno restringido fue ajustado
previamente al estado de bloqueo, los datos de MPEG, en la operación
2644 automáticamente son leídos desde el entorno restringido 2520
al almacenamiento local de la APU 2510. En la operación 2646, la
APU 2510 trata los datos de MPEG en su almacenamiento local para
generar datos de video. En la operación 2648, la APU 2510 escribe
los datos de video en el entorno restringido 2522. En la operación
2650, la APU 2510 emite órdenes de lectura sincronizada al entorno
restringido 2520 para preparar este entorno restringido para
recibir datos de MPEG adicionales. En la operación 2652, la APU 2510
trata una terminación residente. Este tratamiento hace que esta APU
entre en el estado reservado durante el cual la APU espera para
tratar datos de MPEG adicionales en la corriente de datos de
MPEG.
Otras estructuras dedicadas pueden ser
establecidas entre un grupo de APU y sus entornos restringidos
asociados para tratar otros tipos de datos. Por ejemplo, como se ha
mostrado en la fig. 27, un grupo dedicado de APU, por ejemplo, las
APU 2702, 2708 y 2714, puede ser establecido para realizar
transformaciones geométricas sobre objetos tridimensionales para
generar dos listas de presentación dimensionales. Estas dos listas
de presentación dimensionales pueden ser además tratadas (creadas
sus imágenes virtuales) por otras APU para generar datos de píxel.
Para realizar este tratamiento, los entornos restringidos son
dedicados a las APU 2702, 2708 y 2414 para almacenar los objetos
tridimensionales y las listas de presentación resultantes del
tratamiento de estos objetos. Por ejemplo, los entornos
restringidos fuente 2704, 2720 y 2716 son dedicados para almacenar
los objetos tridimensionales tratados por, respectivamente, la APU
2702, la APU 2708 y la APU 2714. De una manera similar, las
entornos restringidos de destino 2706, 2712 y 2718 están dedicados a
almacenar las listas de presentación resultantes del tratamiento de
estos objetos tridimensionales por la APU 2702, la APU 2708 y la
APU 2712, respectivamente.
La coordinación de la APU 2720 está dedicada a
recibir en su almacenamiento local las listas de presentación
procedentes de entornos restringidos de destino 2706, 2712 y 2718.
La APU 2720 arbitra entre estas listas de presentación y las envía
a otras APU para la creación de imagen virtual de los datos de
píxel.
Los procesadores del sistema 101 también emplean
un temporizador absoluto. El temporizador absoluto proporciona una
señal de reloj a las APU y otros elementos de un PE que es tanto
independiente como más rápida que la señal de reloj que acciona
estos elementos. El uso de este temporizador absoluto está ilustrado
en la
fig. 28.
fig. 28.
Como se ha mostrado en esta figura, el
temporizador absoluto establece un presupuesto de tiempo para la
realización de tareas por las APU. Este presupuesto de tiempo
proporciona un tiempo para completar estas tareas que es mayor que
el necesario para el tratamiento de las tareas por las APU. Como
resultado, para cada tarea, hay dentro del presupuesto de tiempo,
un período de ocupación y un período de espera. Todos los
"apulets" son escritos para el tratamiento sobre la base de
este presupuesto de tiempo independientemente del tiempo o velocidad
de tratamiento real de las APU.
Por ejemplo, para una APU particular de un PE,
una tarea particular puede ser realizada durante el período de
ocupación 2802, del presupuesto de tiempo 2804. Como el período de
ocupación 2802 es menor que el presupuesto de tiempo 2804, ocurre
un periodo de espera 2806 durante el presupuesto de tiempo. Durante
este período de espera, la APU va a un modo durmiente durante el
cual se consume menos potencia por la APU.
Los resultados del tratamiento de una tarea no
son esperados por otras APU, u otros elementos de un PE hasta que
expira un presupuesto de tiempo 2804. Usando el presupuesto de
tiempo establecido por el temporizador absoluto, por ello, los
resultados del tratamiento de las APU siempre están coordinados
independientemente de las velocidades de tratamiento reales de las
APU.
En el futuro, la velocidad de tratamiento por
las APU resultará más rápida. El presupuesto de tiempo establecido
por el temporizador absoluto, sin embargo, permanecerá el mismo. Por
ejemplo, como se ha mostrado en la fig. 28, una APU en el futuro
ejecutará una tarea en un período más corto y, por ello, tendrá un
período de de espera más largo. El período de ocupación 2808, por
ello, es más corto que el período de ocupación 2802, y el período
de espera 2810 es más largo que el período de espera 2806. Sin
embargo, como los programas están escritos para el tratamiento
sobre la base del mismo presupuesto de tiempo establecido con el
temporizador absoluto, se mantiene la coordinación de los
resultados del tratamiento entre las APU. Como resultado, APU más
rápidas pueden procesar programas escritos para APU más lentas sin
causar conflictos en los tiempos en los que se esperan los
resultados de este tratamiento.
En lugar de un temporizador absoluto para
establecer la coordinación entre las APU, la PU, o una o más APU
designadas, se pueden analizar las instrucciones particulares o
microcódigo que son ejecutados por una APU en el tratamiento de un
"apulet" para estudiar los problemas en la coordinación del
tratamiento paralelo de las APU creado por velocidades de
funcionamiento mejoradas o diferentes. Instrucciones de "no
funcionamiento" ("NOOP") pueden ser insertadas en las
instrucciones y ejecutadas por alguna de las APU para mantener la
terminación secuencial propia del tratamiento por las APU esperado
por el amuleto. Insertando estas NOOP en las instrucciones, la
temporización correcta para la ejecución de las APU de todas las
instrucciones puede ser mantenida.
Aunque el invento ha sido descrito aquí con
referencia a realizaciones particulares, ha de comprenderse que
estas realizaciones son simplemente ilustrativas de los principios y
aplicaciones del presente invento. Ha de entenderse por ello que
pueden hacerse numerosas modificaciones en las realizaciones
ilustrativas y que pueden ser consideradas otras disposiciones sin
salir del marco del presente invento según ha sido definido por las
reivindicaciones adjuntas.
Claims (40)
1. Un sistema (101) de tratamiento por
ordenador, comprendiendo dicho sistema (101) de tratamiento: una
primera memoria (225) para almacenar programas y datos asociados
con dichos programas; una pluralidad de primeras unidades (402) de
tratamiento para tratar dichos programas y dichos datos asociados;
un controlador de memoria (205) para controlar los accesos a dicha
primera memoria por dichas primeras unidades (402) de tratamiento;
una segunda memoria para almacenar una tabla de acceso (2102) y una
tabla de claves (1902), comprendiendo dicha tabla de acceso (2102)
una pluralidad de entradas de acceso, incluyendo cada una de dichas
entradas de acceso una clave de acceso y una identificación de un
espacio de memoria dentro de dicha primera memoria asociado con
dicha clave de acceso, comprendiendo dicha tabla de claves (1902)
una pluralidad de entradas de claves, incluyendo cada una de dichas
entradas de claves una identificación de una de dichas primeras
unidades (402) de tratamiento y una clave de solicitud asociada con
dicha primera unidad (402) de tratamiento; y una segunda unidad
(203) de tratamiento para controlar dicho tratamiento de dichos
programas y dichos datos asociados por dichas primeras unidades
(402) de tratamiento, siendo accionable dicha segunda unidad (203)
de tratamiento para construir y mantener dicha tabla de acceso
(2102) y dicha tabla de claves (1902), siendo además accionable
dicha segunda unidad (203) de tratamiento para dirigir cualquiera de
dichas primeras unidades (402) de tratamiento para procesar uno de
dichos programas, siendo accionable dicha primera unidad (402) de
tratamiento para tratar dicho programa para emitir una solicitud a
dicho controlador de memoria (205) para acceder a una posición de
almacenamiento dentro de dicha primera memoria (225), siendo
accionable dicho controlador de memoria, en respuesta a dicha
solicitud, para comparar la clave de solicitud asociada con dicha
primera unidad (402) de tratamiento en dicha tabla de claves (1902)
con las claves de acceso en dicha tabla de acceso (2102), y si una
de dichas claves de acceso corresponde con la clave de solicitud
asociada con dicha primera unidad (402) de tratamiento en dicha
tabla de claves (1902) y dicha posición de almacenamiento
corresponde al espacio de memoria asociado con dicha clave de
acceso e identificado en dicha tabla de acceso (2102), ejecutar
dicha solicitud.
2. Un sistema de tratamiento por ordenador según
la reivindicación 1, que comprende además una pluralidad de
memorias locales, estando asociada cada una de dichas memorias
locales con una de dichas primeras unidades (402) de tratamiento, y
en el que dicha segunda unidad de tratamiento (203) es accionable
para dirigir dicha primera unidad (402) de tratamiento para
procesar dicho programa dirigiendo dicho controlador de memoria para
transferir dicho programa desde dicha primera memoria a la memoria
local asociada con dicha primera unidad de tratamiento, tratando
después de ello dicha primera unidad (402) de tratamiento dicho
programa desde dicha memoria local.
3. Un sistema de tratamiento por ordenador según
la reivindicación 1, en el que dicha clave de acceso comprende una
primera pluralidad de bits y dicha clave de solicitud asociada con
dicha primera unidad (402) de tratamiento comprende una segunda
pluralidad de bits, y dicho controlador de memoria es accionable
para ejecutar dicha solicitud solo sí la totalidad de dicha primera
pluralidad de bits coincide con la totalidad de dicha segunda
pluralidad de bits.
4. Un sistemas de tratamiento por ordenador
según la reivindicación 1, en el que dicha clave de acceso comprende
una primera pluralidad de bits y una máscara de claves y dicha
clave de solicitud asociada con dicha primera unidad de tratamiento
comprende una segunda pluralidad de bits, y dicho controlador de
memoria es accionable para ejecutar dicha solicitud sólo si la
totalidad de dicha primera pluralidad de bits coincide con dicha
segunda pluralidad de bits o la totalidad de dicha de dicha primera
pluralidad de bits que no coincide con dicha segunda pluralidad de
bits son enmascarados por dicha máscara de claves.
5. Un sistema de tratamiento por ordenador según
la reivindicación 1, en el que dicha clave de acceso comprende una
primera pluralidad de bits y dicha clave de solicitud asociada con
dicha primera unidad (402) de tratamiento comprende una segunda
pluralidad de bits y una máscara de claves, y dicho controlador de
memoria es accionable para ejecutar dicha solicitud sólo si la
totalidad de dicha segunda pluralidad de bits coincide con dicha
primera pluralidad de bits o los bits de dicha segunda pluralidad de
bits que no coinciden con dicha primera pluralidad de bits son
enmascarados por dicha máscara de claves.
6. Un sistema de tratamiento por ordenador según
la reivindicación 1, en el que cada una de dichas entradas de
claves incluye además una máscara de claves.
7. Un sistema de tratamiento por ordenador según
la reivindicación 1, en el que cada una de dichas entradas de
acceso que incluye además una máscara de claves.
8. Un sistema de tratamiento por ordenador según
la reivindicación 1, en el que cada una de dichas entradas de
claves incluye además una máscara de claves y cada una de dichas
entradas de accesos incluye además una máscara de claves.
9. Un sistema de tratamiento por ordenador según
la reivindicación 1, en el que cada una de dichas entradas de
acceso incluye además una entrada de posición base y una entrada de
tamaño, proporcionando dicha entrada de posición base la dirección
de comienzo dentro de dicha primera memoria de dicho espacio de
memoria asociado con dicha entrada de acceso y proporcionando dicha
entrada de tamaño el tamaño dentro de dicha primera memoria de
dicho espacio de memoria asociado con dicha entrada de acceso.
10. Un sistema de tratamiento por ordenador
según la reivindicación 1, en el que cada una de dichas primeras
memoria es una memoria dinámica de acceso aleatorio y es una memoria
principal para dicho sistema de tratamiento por ordenador.
11. Un método de tratamiento por ordenador,
comprendiendo dicho método: almacenar en una primera memoria (225)
programas y datos asociados con dichos programas; tratar con una
pluralidad de primeras unidades (402) de tratamiento dichos
programas y dichos datos asociados; controlar con un controlador de
memoria (205) accesos a dicha primera memoria por dichas primeras
unidades (402) de tratamiento; construir con una segunda unidad
(203) de tratamiento en una segunda memoria una tabla de acceso
(2102) y una tabla de claves (1902), comprendiendo dicha tabla de
acceso (2102) una pluralidad de entradas de acceso, incluyendo cada
una de dichas entradas de acceso una clave de acceso y una
identificación de un espacio de memoria dentro de dicha primera
memoria asociado con dicha clave de acceso, comprendiendo dicha
tabla de claves (19002) una pluralidad de entradas de claves,
incluyendo cada una de dichas entradas de claves una identificación
de una de dichas primeras unidades (402) de tratamiento y una clave
de solicitud asociada con dicha primera unidad (402) de tratamiento;
controlar con dicha segunda unidad (203) de tratamiento dicho
tratamiento de dichos programas y dichos datos asociados por dichas
primeras unidades (402) de tratamiento; dirigir con dicha segunda
unidad (203) de tratamiento de dichas primeras unidades (402) de
tratamiento para procesar uno de dichos programas; emitir desde
dicha primera unidad (402) de tratamiento, al tratar dicho
programa, una solicitud a dicho controlador de memoria (205) para
acceder a una posición de almacenamiento dentro de dicha primera
memoria; comparar, en respuesta a dicha solicitud, la clave de
solicitud asociada con dicha primera unidad (402) de tratamiento en
dicha tabla de claves (1902) con las claves de accesos en dicha
tabla de accesos (2102); si una de dichas claves de acceso
corresponde con la clave de solicitud asociada con dicha primera
unidad (402) de tratamiento en dicha tabla de claves (1902) y dicha
posición de almacenamiento corresponde al espacio de memoria
asociado con dicha clave de accesos identificada en dicha tabla de
acceso (2102), ejecutar dicha
solicitud.
solicitud.
12. Un método de tratamiento por ordenador según
la reivindicación 11, que comprende además dirigir con dicha
segunda unidad (203) de tratamiento dicha primera unidad (402) de
tratamiento para tratar dicho programa emitiendo desde dicha
segunda unidad (203) de tratamiento una orden a dicho controlador de
memoria para transferir dicho programa desde dicha primera memoria
a una memoria local asociada con dicha primera unidad (402) de
tratamiento, y después de ello tratar con dicha primera unidad
(402) de tratamiento dicho programa desde dicha memoria
local.
local.
13. Un método de tratamiento por ordenador según
la reivindicación 11, en el que dicha clave de acceso comprende una
primera pluralidad de bits y dicha clave de solicitud asociada con
dicha primera unidad (402) de tratamiento comprende una segunda
pluralidad de bits, y comprendiendo además ejecutar con dicho
controlador de memoria dicha solicitud sólo si la totalidad de
dicha primera pluralidad de bits coincide con la totalidad de dicha
segunda pluralidad de bits.
14. Un método de tratamiento por ordenador según
la reivindicación 11, en el que dicha clave de acceso comprende una
primera pluralidad de bits y una máscara de claves y dicha clave de
solicitud asociada con dicha primera unidad (402) de tratamiento
comprende una segunda pluralidad de bits, y comprendiendo además
ejecutar con dicho controlador de memoria dicha solicitud sólo si
la totalidad de dicha primera pluralidad de bits coincide con dicha
segunda pluralidad de bits o si todos los bits de dicha primera
pluralidad de bits que no coinciden con dicha segunda pluralidad de
bits son enmascarados por dicha máscara de claves.
15. Un método de tratamiento por ordenador según
la reivindicación 11, en el que dicha clave de acceso comprende una
primera pluralidad de bits y dicha clave de solicitud asociada con
dicha primera unidad (402) de tratamiento comprende una segunda
pluralidad de bits y una máscara de claves, y comprendiendo además
ejecutar con dicho controlador de memoria dicha solicitud sólo si
la totalidad de dicha segunda pluralidad de bits coincide con dicha
primera pluralidad de bits o todos los bits de dicha segunda
pluralidad de bits que no coinciden con dicha primera pluralidad de
bits son enmascarados con dicha máscara de claves.
16. Un método de tratamiento por ordenador según
la reivindicación 11, en el que cada una de dichas entradas de
claves incluye además una máscara de claves.
17. Un método de tratamiento por ordenador según
la reivindicación 11, en el que cada una de dichas entradas de
acceso incluye además una máscara de claves.
18. Un método de tratamiento por ordenador según
la reivindicación 10, en el que cada una de dichas entradas de
claves que incluye además una máscara de claves y cada una de dichas
entradas de acceso incluye además una máscara de claves.
19. Un método de tratamiento por ordenador según
la reivindicación 11, en el que cada una de dichas entradas de
acceso incluye además una entrada de posición base y una entrada de
tamaño, proporcionando dicha entrada de posición base la dirección
de comienzo dentro de dicha primera memoria de dicho espacio de
memoria asociado con dicha entrada de acceso y proporcionando dicha
entrada de tamaño el tamaño dentro de dicha primera memoria de
dicho espacio de memoria asociado con dicha entrada de acceso.
20. Un método de tratamiento por ordenador según
la reivindicación 11, en el que dicha primera memoria es una
memoria dinámica de acceso aleatorio y es una memoria principal para
dicho sistema (101) de tratamiento por ordenador.
21. Un sistema (101) de tratamiento por
ordenador, comprendiendo dicho sistema (101) de tratamiento: una
primera memoria (225) para almacenar programas y datos asociados con
dichos programas, comprendiendo dicha primera memoria (225) una
pluralidad de posiciones de almacenamiento accesibles, comprendiendo
cada una de dichas posiciones de almacenamiento accesibles un
segmento (2010) de memoria adicional asociado con dicha posición de
almacenamiento accesible y conteniendo una clave de acceso (2012)
para dicha posición de almacenamiento accesible; una pluralidad de
primeras unidades (402) de tratamiento para tratar dichos programas
y dichos datos asociados; un controlador de memoria (205) para
controlar los accesos a dicha primera memoria por dichas primeras
unidades (402) de tratamiento; una segunda memoria para almacenar
una tabla de claves (1902) que comprende una pluralidad de entradas
de claves, incluyendo cada una de dichas entradas de claves una
identificación (1904) de una de dichas primeras unidades (402) de
tratamiento y una clave de solicitud (1906) asociada con dicha
primera unidad (402) de tratamiento; una segunda unidad (203) de
tratamiento para controlar dicho tratamiento de dichos programas y
dichos datos asociados por dichas primeras unidades (402) de
tratamiento, siendo accionable dicha segunda unidad (203) de
tratamiento para asignar y mantener dichas claves de acceso (2012) y
construir y mantener dicha tabla de claves (1902), siendo además
accionable dicha segunda unidad (203) de tratamiento para dirigir
cualquiera de dichas primeras unidades (402) de tratamiento para
tratar uno de dichos programas, siendo accionable dicha primera
unidad (402) de tratamiento en el tratamiento de dicho programa para
emitir una solicitud a dicho controlador de memoria (205) para
acceder a una de dichas posiciones de almacenamiento accesibles,
siendo accionable dicho controlador de memoria, en respuesta a dicha
solicitud, para comparar la clave de solicitud (1906) asociada con
dicha primera unidad (402) de tratamiento en dicha tabla de claves
(1902) con la clave de acceso (2012) contenida en el segmento de
memoria adicional asociado con dicha posición de almacenamiento
accesible, y si la clave de solicitud (1906) asociada con dicha
primera unidad (402) de tratamiento en dicha tabla de claves (1902)
corresponde con dicha clave de acceso (2012) contenida en dicho
segmento de memoria adicional asociado con dicha posición de
almacenamiento accesible, ejecutar dicha solicitud.
22. Un sistema de tratamiento por ordenador
según la reivindicación 21, que comprende además una pluralidad de
memorias locales, estando asociada cada una de dichas memorias
locales con una de dichas primeras unidades (402) de tratamiento, y
en el que dicha segunda unidad (203) de tratamiento es accionable
para dirigir dicha primera unidad (402) de tratamiento para tratar
dicho programa dirigiendo dicho controlador de memorias para
transferir dicho programa desde dicha primera memoria a la memoria
local asociada con dicha primera unidad (402) de tratamiento,
procesando después de ello dicha primera unidad (402) de tratamiento
dicho programa desde dicha memoria
local.
local.
23. Un sistema de tratamiento por ordenador
según la reivindicación 21, en el que dicha clave de acceso
contenida en dicho segmento de memoria asociado con dicha posición
de almacenamiento accesible comprende una primera pluralidad de
bits, y dicha clave de solicitud asociada con dicha primera unidad
(402) de tratamiento comprende una segunda pluralidad de bits, y
dicho controlador de memoria es accionable para ejecutar dicha
solicitud sólo si la totalidad de dicha primera pluralidad de bits
coincide con la totalidad de dicha segunda pluralidad bits.
24. Un sistema de tratamiento por ordenador
según la reivindicación 21, en el que dicha clave de acceso
contenida en dicho segmento de memoria asociado con dicha posición
de almacenamiento accesible comprende una primera pluralidad de
bits y una máscara de claves y dicha clave de solicitud asociada con
dicha primera unidad (402) de tratamiento comprende una segunda
pluralidad de bits, y dicho controlador de memoria es accionable
para ejecutar dicha solicitud sólo si la totalidad de dicha primera
pluralidad de bits coincide con dicha segunda pluralidad de bits o
los bits de dicha primera pluralidad de bits que no coinciden con
dicha segunda pluralidad de bits son enmascarados por dicha máscara
de claves.
25. Un sistema de tratamiento por ordenador
según la reivindicación 21, en el que dicha clave de acceso
contenida en dicho segmento de memoria asociado con dicha posición
de almacenamiento accesible comprende una primera pluralidad de
bits y dicha clave de solicitud asociada con dicha primera unidad
(402) de tratamiento comprende una segunda pluralidad de bits y una
máscara de claves, y dicho controlador de memoria es accionable para
ejecutar dicha solicitud sólo si la totalidad de dicha segunda
pluralidad de bits coincide con dicha primera pluralidad de bits o
todos los bits de dicha segunda pluralidad de bits que no coinciden
con dicha primera pluralidad de bits son enmascarados por dicha
máscara de claves.
26. Un sistema de tratamiento por ordenador
según la reivindicación 21, en el que cada una de dichas entradas
de claves incluye además una máscara de claves.
27. Un sistema de tratamiento por ordenador
según la reivindicación 21, en el que cada uno de dichos segmentos
de memoria adicional contiene también una máscara de claves.
28. Un sistema de tratamiento por ordenador
según la reivindicación 21, en el que cada una de dichas entradas
de claves incluye además una máscara de claves y cada uno de dichos
segmentos de memoria adicional contiene también una máscara de
claves.
29. Un sistema de tratamiento por ordenador
según la reivindicación 21, en el que cada uno de dichos segmentos
de memoria adicionales contiene también información del estado
relativo al estado de los datos almacenados en la posición de
almacenamiento accesible asociada con dicho segmento de memoria
adicional.
30. Un sistema de tratamiento por ordenador
según la reivindicación 21, en el que dicha primera memoria es una
memoria dinámica de acceso aleatorio y es una memoria principal para
dicho sistema (101) de tratamiento por ordenador.
31. Un método de tratamiento por ordenador,
comprendiendo dicho método: almacenar en una primera memoria (225)
programas y datos asociados con dichos programas, comprendiendo
dicha primera memoria una pluralidad de posiciones de
almacenamiento accesibles, incluyendo cada una de dichas posiciones
de almacenamiento accesibles un segmento (2040) de la memoria
adicional asociado con dicha posición de almacenamiento accesible;
almacenar en dicho segmento de memoria adicional para cada posición
de almacenamiento accesible una clave de acceso (2012) para dicha
posición de almacenamiento accesible; tratar con una pluralidad de
primeras unidades (402) de tratamiento dichos programas y dichos
datos asociados; controlar con un controlador de memoria (205)
accesos a dicha primera memoria por dichas primeras unidades (402)
de tratamiento; almacenar en una segunda memoria una tabla de
claves (1902) que comprende una pluralidad de entradas de claves,
incluyendo cada una de dichas entradas de claves una identificación
(1904) de una de dichas primeras unidades (402) de tratamiento y una
clave de solicitud (1906) asociada con dicha primera unidad (402)
de tratamiento; controlar con una segunda unidad (203) de
tratamiento dicho tratamiento de dichos programas y dichos datos
asociados por dichas primeras unidades (402) de tratamiento;
construir con dicha segunda unidad (203) de tratamiento dicha tabla
de claves (1902); dirigir con dicha segunda unidad (203) de
tratamiento cualquiera de dichas primeras unidades (402) de
tratamiento para tratar uno de dichos programas; emitir desde dicha
primera unidad (402) de tratamiento, en el tratamiento de dicho
programa, una solicitud a dicho controlador de memoria para acceder
a una de dichas posiciones de almacenamiento accesibles; comparar,
en respuesta a dicha solicitud, la clave de solicitud (1906)
asociada con dicha primera unidad (402) de tratamiento en dicha
tabla de claves (1902) con la clave de accesos (2012) contenida en
el segmento de memoria adicional asociado con dicha posición de
almacenamiento accesible; si la clave de solicitud (1906) asociada
con dicha primera unidad (402) de tratamiento en dicha tabla de
claves (1902) corresponde con dicha clave de accesos (2012)
contenida en dicho segmento de memoria adicional asociado con dicha
posición de almacenamiento accesible, ejecutar dicha solicitud.
32. Un método de tratamiento por ordenador según
la reivindicación 31, que comprende además dirigir con dicha
segunda unidad (203) de tratamiento dicha primera unidad (402) de
tratamiento para tratar dicho programa dirigiendo dicho controlador
de memoria para transferir dicho programa desde dicha primera
memoria a la memoria local asociada con dicha primera unidad (402)
de tratamiento, y después de ello tratar con dicha primera unidad
(402) de tratamiento dicho programa desde dicha memoria local.
33. Un método de tratamiento por ordenador según
la reivindicación 31, en el que dicha clave de acceso contenida en
dicho segmento de memoria adicional asociado con dicha posición de
almacenamiento accesible comprende una primera pluralidad de bits y
dicha clave de solicitud asociada con dicha primera unidad (402) de
tratamiento comprende una segunda pluralidad de bits, y
comprendiendo además ejecutar con dicho controlador de memoria
dicha solicitud sólo si la totalidad de dicha primera pluralidad de
bits coincide con la totalidad de dicha segunda pluralidad de
bits.
34. Un método de tratamiento por ordenador según
la reivindicación 31, en el que dicha clave de acceso contenida en
dicho segmento de memoria asociado con dicha posición de
almacenamiento accesible comprende una primera pluralidad de bits y
una máscara de claves y dicha clave de solicitud asociada con dicha
primera unidad (402) de tratamiento comprende una segunda
pluralidad de bits, y comprendiendo además ejecutar con dicho
controlador de memoria dicha solicitud sólo si la totalidad de
dicha primera pluralidad de bits coincide con dicha segunda
pluralidad de bits o si todos los bits de dicha primera pluralidad
de bits que no coinciden con dicha segunda pluralidad de bits son
enmascarados por dicha máscara de claves.
35. Un método de tratamiento por ordenador según
la reivindicación 31, en el que dicha clave de acceso contenida en
dicho segmento de memoria adicional asociado con dicha posición de
almacenamiento accesible comprende una primera pluralidad de bits y
dicha clave de solicitud asociada con dicha primera unidad (402) de
tratamiento comprende una segunda pluralidad de bits y una máscara
de claves, y comprendiendo además ejecutar con dicho controlador de
memoria dicha solicitud sólo si la totalidad de dicha segunda
pluralidad de bits coincide con dicha primera pluralidad de bits o
todos los bits de dicha segunda pluralidad de bits que no coinciden
con dicha primera pluralidad de bits son enmascarados con dicha
máscara de claves.
36. Un método de tratamiento por ordenador según
la reivindicación 31, en el que cada una de dichas entradas de
claves incluye además una máscara de claves.
37. Un método de tratamiento por ordenador según
la reivindicación 31, en el que cada uno de dichos elementos de
memoria adicional contiene también una máscara de claves.
38. Un método de tratamiento por ordenador según
la reivindicación 31, en el que cada una de dichas entradas de
claves incluye además una máscara de claves y cada uno de dichos
segmentos de memoria adicional contiene también una máscara de
claves.
39. Un método de tratamiento por ordenador según
la reivindicación 31, en el que cada uno de dichos segmentos de
memoria adicional contiene también información de estado relativa al
estado de datos almacenados en la posición de memoria accesible
asociada con dicho segmento de memoria adicional.
40. Un método de tratamiento ordenador según la
reivindicación 31, en el que dicha primera memoria es una memoria
dinámica de acceso aleatorio y es una memoria principal para dicho
sistema (101) de tratamiento por ordenador.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US816020 | 2001-03-22 | ||
| US09/816,020 US6526491B2 (en) | 2001-03-22 | 2001-03-22 | Memory protection system and method for computer architecture for broadband networks |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2346045T3 true ES2346045T3 (es) | 2010-10-08 |
Family
ID=25219464
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES02705345T Expired - Lifetime ES2346045T3 (es) | 2001-03-22 | 2002-03-19 | Sistema y metodo de control de acceso a memoria compartida para una arquitectura de ordenador para redes de banda ancha. |
Country Status (9)
| Country | Link |
|---|---|
| US (7) | US6526491B2 (es) |
| EP (1) | EP1370948B1 (es) |
| JP (2) | JP3454808B2 (es) |
| KR (1) | KR100890134B1 (es) |
| CN (1) | CN1291327C (es) |
| DE (1) | DE60236416D1 (es) |
| ES (1) | ES2346045T3 (es) |
| TW (1) | TW556087B (es) |
| WO (1) | WO2002077826A1 (es) |
Families Citing this family (250)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1264477A4 (en) * | 2000-02-23 | 2003-10-01 | Penta Trading Ltd | SYSTEMS AND METHODS FOR LAUNCHING AND ESTABLISHING PREVIEW OF ELECTRONIC FILES OF THE WEB FILE TYPE |
| US7194557B1 (en) * | 2004-11-08 | 2007-03-20 | Palmsource, Inc. | Data exchange between a handheld device and another computer system using an exchange manager via synchronization |
| US6779049B2 (en) * | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
| US7231500B2 (en) * | 2001-03-22 | 2007-06-12 | Sony Computer Entertainment Inc. | External data interface in a computer architecture for broadband networks |
| US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
| US6826662B2 (en) | 2001-03-22 | 2004-11-30 | Sony Computer Entertainment Inc. | System and method for data synchronization for a computer architecture for broadband networks |
| US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
| US6865639B2 (en) * | 2001-12-19 | 2005-03-08 | Northrop Grumman Corporation | Scalable self-routing superconductor switch |
| US6980209B1 (en) * | 2002-06-14 | 2005-12-27 | Nvidia Corporation | Method and system for scalable, dataflow-based, programmable processing of graphics data |
| US8108656B2 (en) * | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
| US7243333B2 (en) * | 2002-10-24 | 2007-07-10 | International Business Machines Corporation | Method and apparatus for creating and executing integrated executables in a heterogeneous architecture |
| US7225431B2 (en) * | 2002-10-24 | 2007-05-29 | International Business Machines Corporation | Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture |
| US7213123B2 (en) * | 2002-10-24 | 2007-05-01 | International Business Machines Corporation | Method and apparatus for mapping debugging information when debugging integrated executables in a heterogeneous architecture |
| US7222332B2 (en) * | 2002-10-24 | 2007-05-22 | International Business Machines Corporation | Method and apparatus for overlay management within an integrated executable for a heterogeneous architecture |
| US7225301B2 (en) * | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
| JP2004220070A (ja) * | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
| US7577636B2 (en) * | 2003-05-28 | 2009-08-18 | Fernandez Dennis S | Network-extensible reconfigurable media appliance |
| JP4028444B2 (ja) * | 2003-06-27 | 2007-12-26 | 株式会社東芝 | スケジューリング方法およびリアルタイム処理システム |
| JP4624732B2 (ja) * | 2003-07-16 | 2011-02-02 | パナソニック株式会社 | アクセス方法 |
| US8086752B2 (en) | 2006-11-22 | 2011-12-27 | Sonos, Inc. | Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data |
| US11650784B2 (en) | 2003-07-28 | 2023-05-16 | Sonos, Inc. | Adjusting volume levels |
| US8290603B1 (en) | 2004-06-05 | 2012-10-16 | Sonos, Inc. | User interfaces for controlling and manipulating groupings in a multi-zone media system |
| US11294618B2 (en) | 2003-07-28 | 2022-04-05 | Sonos, Inc. | Media player system |
| US11106425B2 (en) | 2003-07-28 | 2021-08-31 | Sonos, Inc. | Synchronizing operations among a plurality of independently clocked digital data processing devices |
| US11106424B2 (en) | 2003-07-28 | 2021-08-31 | Sonos, Inc. | Synchronizing operations among a plurality of independently clocked digital data processing devices |
| US10613817B2 (en) | 2003-07-28 | 2020-04-07 | Sonos, Inc. | Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group |
| US8234395B2 (en) | 2003-07-28 | 2012-07-31 | Sonos, Inc. | System and method for synchronizing operations among a plurality of independently clocked digital data processing devices |
| US8020023B2 (en) | 2003-07-28 | 2011-09-13 | Sonos, Inc. | Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices without a voltage controlled crystal oscillator |
| US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
| US7236998B2 (en) * | 2003-09-25 | 2007-06-26 | International Business Machines Corporation | System and method for solving a large system of dense linear equations |
| US7478390B2 (en) * | 2003-09-25 | 2009-01-13 | International Business Machines Corporation | Task queue management of virtual devices using a plurality of processors |
| US7318218B2 (en) * | 2003-09-25 | 2008-01-08 | International Business Machines Corporation | System and method for processor thread for software debugging |
| US7516456B2 (en) * | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
| US7475257B2 (en) * | 2003-09-25 | 2009-01-06 | International Business Machines Corporation | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data |
| US7415703B2 (en) * | 2003-09-25 | 2008-08-19 | International Business Machines Corporation | Loading software on a plurality of processors |
| US7549145B2 (en) * | 2003-09-25 | 2009-06-16 | International Business Machines Corporation | Processor dedicated code handling in a multi-processor environment |
| US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
| US7523157B2 (en) * | 2003-09-25 | 2009-04-21 | International Business Machines Corporation | Managing a plurality of processors as devices |
| US7389508B2 (en) * | 2003-09-25 | 2008-06-17 | International Business Machines Corporation | System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment |
| US20050071578A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for manipulating data with a plurality of processors |
| US7146529B2 (en) * | 2003-09-25 | 2006-12-05 | International Business Machines Corporation | System and method for processor thread acting as a system service processor |
| US7496917B2 (en) * | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
| US7739479B2 (en) * | 2003-10-02 | 2010-06-15 | Nvidia Corporation | Method for providing physics simulation data |
| US7895411B2 (en) * | 2003-10-02 | 2011-02-22 | Nvidia Corporation | Physics processing unit |
| US20050086040A1 (en) * | 2003-10-02 | 2005-04-21 | Curtis Davis | System incorporating physics processing unit |
| TW200532466A (en) | 2004-02-03 | 2005-10-01 | Sony Corp | Information processing device, information processing method, information processing system and information processing program of accessible media |
| US8028292B2 (en) | 2004-02-20 | 2011-09-27 | Sony Computer Entertainment Inc. | Processor task migration over a network in a multi-processor system |
| JP2005235019A (ja) * | 2004-02-20 | 2005-09-02 | Sony Corp | ネットワークシステム、分散処理方法、情報処理装置 |
| US7614053B2 (en) * | 2004-02-20 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for task management in a multi-processor system |
| JP2005242598A (ja) * | 2004-02-26 | 2005-09-08 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム |
| JP4586526B2 (ja) | 2004-02-27 | 2010-11-24 | ソニー株式会社 | 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム |
| JP4325438B2 (ja) | 2004-03-01 | 2009-09-02 | ソニー株式会社 | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム |
| US7657186B2 (en) * | 2004-03-05 | 2010-02-02 | Finisar Corporation | Consistency checking over internal information in an optical transceiver |
| EP1723530A4 (en) * | 2004-03-05 | 2008-12-31 | Finisar Corp | HIERARCHICAL AND BYTE CONFIGURABLE STORAGE IN AN OPTICAL TRANSMITTER / RECEIVER |
| US7657667B2 (en) * | 2004-03-25 | 2010-02-02 | International Business Machines Corporation | Method to provide cache management commands for a DMA controller |
| US8224639B2 (en) | 2004-03-29 | 2012-07-17 | Sony Computer Entertainment Inc. | Methods and apparatus for achieving thermal management using processing task scheduling |
| US9977561B2 (en) | 2004-04-01 | 2018-05-22 | Sonos, Inc. | Systems, methods, apparatus, and articles of manufacture to provide guest access |
| US9374607B2 (en) | 2012-06-26 | 2016-06-21 | Sonos, Inc. | Media playback system with guest access |
| US20050251649A1 (en) * | 2004-04-23 | 2005-11-10 | Sony Computer Entertainment Inc. | Methods and apparatus for address map optimization on a multi-scalar extension |
| US7437536B2 (en) | 2004-05-03 | 2008-10-14 | Sony Computer Entertainment Inc. | Systems and methods for task migration |
| US20050251644A1 (en) * | 2004-05-06 | 2005-11-10 | Monier Maher | Physics processing unit instruction set architecture |
| US7526608B2 (en) * | 2004-05-28 | 2009-04-28 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a software implemented cache memory |
| US8326951B1 (en) | 2004-06-05 | 2012-12-04 | Sonos, Inc. | Establishing a secure wireless network with minimum human intervention |
| US8868698B2 (en) | 2004-06-05 | 2014-10-21 | Sonos, Inc. | Establishing a secure wireless network with minimum human intervention |
| JP4465598B2 (ja) | 2004-07-05 | 2010-05-19 | ソニー株式会社 | 集積回路およびその処理制御方法、並びに、プログラム |
| JP2006031480A (ja) * | 2004-07-16 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
| JP4599923B2 (ja) | 2004-07-16 | 2010-12-15 | ソニー株式会社 | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
| JP2006033646A (ja) | 2004-07-20 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
| JP2006031525A (ja) | 2004-07-20 | 2006-02-02 | Sony Corp | 情報処理装置および情報処理方法、並びに、プログラム |
| US7779177B2 (en) * | 2004-08-09 | 2010-08-17 | Arches Computing Systems | Multi-processor reconfigurable computing system |
| US7304646B2 (en) * | 2004-08-19 | 2007-12-04 | Sony Computer Entertainment Inc. | Image data structure for direct memory access |
| US7363397B2 (en) * | 2004-08-26 | 2008-04-22 | International Business Machines Corporation | System and method for DMA controller with multi-dimensional line-walking functionality |
| US7240137B2 (en) * | 2004-08-26 | 2007-07-03 | International Business Machines Corporation | System and method for message delivery across a plurality of processors |
| US20070263514A1 (en) * | 2004-08-30 | 2007-11-15 | Yoshiaki Iwata | Recorder |
| US7780533B2 (en) * | 2004-08-30 | 2010-08-24 | Panasonic Corporation | Client terminal for executing multiplayer application, group forming method, and group forming program |
| JP2006079280A (ja) | 2004-09-08 | 2006-03-23 | Sony Corp | 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム |
| US7240182B2 (en) * | 2004-09-16 | 2007-07-03 | International Business Machines Corporation | System and method for providing a persistent function server |
| US8001294B2 (en) * | 2004-09-28 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a compressed network in a multi-processing system |
| US20060070069A1 (en) * | 2004-09-30 | 2006-03-30 | International Business Machines Corporation | System and method for sharing resources between real-time and virtualizing operating systems |
| US7290112B2 (en) * | 2004-09-30 | 2007-10-30 | International Business Machines Corporation | System and method for virtualization of processor resources |
| JP2007334379A (ja) | 2004-10-05 | 2007-12-27 | Matsushita Electric Ind Co Ltd | 処理装置 |
| US20060080661A1 (en) * | 2004-10-07 | 2006-04-13 | International Business Machines Corporation | System and method for hiding memory latency |
| US7506325B2 (en) | 2004-10-07 | 2009-03-17 | International Business Machines Corporation | Partitioning processor resources based on memory usage |
| ATE498867T1 (de) * | 2004-10-15 | 2011-03-15 | Sony Computer Entertainment Inc | Verfahren und vorrichtungen zur unterstützung mehrerer konfigurationen in einem mehrprozessorsystem |
| US7502928B2 (en) * | 2004-11-12 | 2009-03-10 | Sony Computer Entertainment Inc. | Methods and apparatus for secure data processing and transmission |
| US7512699B2 (en) * | 2004-11-12 | 2009-03-31 | International Business Machines Corporation | Managing position independent code using a software framework |
| US20060129999A1 (en) * | 2004-11-16 | 2006-06-15 | Sony Computer Entertainment Inc. | Methods and apparatus for using bookmarks in a trace buffer |
| JP4606142B2 (ja) * | 2004-12-01 | 2011-01-05 | 株式会社ソニー・コンピュータエンタテインメント | スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム |
| US7707385B2 (en) * | 2004-12-14 | 2010-04-27 | Sony Computer Entertainment Inc. | Methods and apparatus for address translation from an external device to a memory of a processor |
| US20060126770A1 (en) * | 2004-12-15 | 2006-06-15 | Takeshi Yamazaki | Methods and apparatus for providing an asynchronous boundary between internal busses in a multi-processor device |
| US7689814B2 (en) | 2004-12-20 | 2010-03-30 | Sony Computer Entertainment Inc. | Methods and apparatus for disabling error countermeasures in a processing system |
| US7698473B2 (en) * | 2005-01-05 | 2010-04-13 | Sony Computer Entertainment Inc. | Methods and apparatus for list transfers using DMA transfers in a multi-processor system |
| US7386687B2 (en) * | 2005-01-07 | 2008-06-10 | Sony Computer Entertainment Inc. | Methods and apparatus for managing a shared memory in a multi-processor system |
| US20060155955A1 (en) * | 2005-01-10 | 2006-07-13 | Gschwind Michael K | SIMD-RISC processor module |
| US7644255B2 (en) * | 2005-01-13 | 2010-01-05 | Sony Computer Entertainment Inc. | Method and apparatus for enable/disable control of SIMD processor slices |
| US20060177122A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Method and apparatus for particle manipulation using graphics processing |
| US20060179436A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a task change application programming interface |
| JP4606339B2 (ja) * | 2005-02-07 | 2011-01-05 | 株式会社ソニー・コンピュータエンタテインメント | セキュアなプロセッサの処理の移行を実施する方法および装置 |
| JP4489030B2 (ja) * | 2005-02-07 | 2010-06-23 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサ内にセキュアな起動シーケンスを提供する方法および装置 |
| JP4601557B2 (ja) * | 2005-02-07 | 2010-12-22 | 株式会社ソニー・コンピュータエンタテインメント | マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置 |
| JP4522372B2 (ja) * | 2005-02-07 | 2010-08-11 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置 |
| US7613886B2 (en) * | 2005-02-08 | 2009-11-03 | Sony Computer Entertainment Inc. | Methods and apparatus for synchronizing data access to a local memory in a multi-processor system |
| US7818724B2 (en) * | 2005-02-08 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for instruction set emulation |
| US7774512B2 (en) | 2005-02-08 | 2010-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for hybrid DMA queue and DMA table |
| US20060179275A1 (en) * | 2005-02-08 | 2006-08-10 | Takeshi Yamazaki | Methods and apparatus for processing instructions in a multi-processor system |
| US7467204B2 (en) * | 2005-02-10 | 2008-12-16 | International Business Machines Corporation | Method for providing low-level hardware access to in-band and out-of-band firmware |
| US7418541B2 (en) * | 2005-02-10 | 2008-08-26 | International Business Machines Corporation | Method for indirect access to a support interface for memory-mapped resources to reduce system connectivity from out-of-band support processor |
| US20060184296A1 (en) * | 2005-02-17 | 2006-08-17 | Hunter Engineering Company | Machine vision vehicle wheel alignment systems |
| US7685601B2 (en) * | 2005-02-28 | 2010-03-23 | Sony Computer Entertainment Inc. | Methods and apparatus for segmented stack management in a processor system |
| US7395411B2 (en) * | 2005-03-14 | 2008-07-01 | Sony Computer Entertainment Inc. | Methods and apparatus for improving processing performance by controlling latch points |
| US20060206732A1 (en) * | 2005-03-14 | 2006-09-14 | Sony Computer Entertainment Inc. | Methods and apparatus for improving processing performance using instruction dependency check depth |
| WO2006099630A1 (en) * | 2005-03-17 | 2006-09-21 | Lubrizol Advanced Materials, Inc. | Nanoparticle/vinyl polymer composites |
| US7689784B2 (en) * | 2005-03-18 | 2010-03-30 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic linking program overlay |
| US7451249B2 (en) * | 2005-03-21 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for direct input and output in a virtual machine environment containing a guest operating system |
| US7818507B2 (en) | 2005-04-04 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for facilitating coherency management in distributed multi-processor system |
| US7650266B2 (en) * | 2005-05-09 | 2010-01-19 | Nvidia Corporation | Method of simulating deformable object using geometrically motivated model |
| US7409570B2 (en) * | 2005-05-10 | 2008-08-05 | Sony Computer Entertainment Inc. | Multiprocessor system for decrypting and resuming execution of an executing program after transferring the program code between two processors via a shared main memory upon occurrence of predetermined condition |
| US20060259733A1 (en) * | 2005-05-13 | 2006-11-16 | Sony Computer Entertainment Inc. | Methods and apparatus for resource management in a logically partitioned processing environment |
| US7444525B2 (en) * | 2005-05-25 | 2008-10-28 | Sony Computer Entertainment Inc. | Methods and apparatus for reducing leakage current in a disabled SOI circuit |
| JP5079988B2 (ja) * | 2005-06-13 | 2012-11-21 | オリンパス株式会社 | 分散処理システム、分散処理方法及びプログラム |
| US8037474B2 (en) * | 2005-09-27 | 2011-10-11 | Sony Computer Entertainment Inc. | Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution |
| US7522168B2 (en) * | 2005-09-27 | 2009-04-21 | Sony Computer Entertainment Inc. | Cell processor task and data management |
| US7398482B2 (en) * | 2005-07-28 | 2008-07-08 | International Business Machines Corporation | Modular design method and apparatus |
| US20070083870A1 (en) * | 2005-07-29 | 2007-04-12 | Tomochika Kanakogi | Methods and apparatus for task sharing among a plurality of processors |
| JP4536618B2 (ja) * | 2005-08-02 | 2010-09-01 | 富士通セミコンダクター株式会社 | リコンフィグ可能な集積回路装置 |
| US7659898B2 (en) * | 2005-08-08 | 2010-02-09 | Via Technologies, Inc. | Multi-execution resource graphics processor |
| US7659899B2 (en) * | 2005-08-08 | 2010-02-09 | Via Technologies, Inc. | System and method to manage data processing stages of a logical graphics pipeline |
| US20070030280A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Global spreader and method for a parallel graphics processor |
| US20070030277A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Method for processing vertex, triangle, and pixel graphics data packets |
| US7778271B2 (en) | 2005-08-19 | 2010-08-17 | International Business Machines Corporation | Method for communicating instructions and data between a processor and external devices |
| US7386636B2 (en) * | 2005-08-19 | 2008-06-10 | International Business Machines Corporation | System and method for communicating command parameters between a processor and a memory flow controller |
| US7500039B2 (en) | 2005-08-19 | 2009-03-03 | International Business Machines Corporation | Method for communicating with a processor event facility |
| US8141076B2 (en) * | 2005-09-27 | 2012-03-20 | Sony Computer Entertainment Inc. | Cell processor methods and apparatus |
| US7506123B1 (en) * | 2005-09-27 | 2009-03-17 | Sony Computer Entertainment Inc. | Method and system for performing memory copy function on a cell processor |
| US7734827B2 (en) * | 2005-09-27 | 2010-06-08 | Sony Computer Entertainment, Inc. | Operation of cell processors |
| US8316220B2 (en) * | 2005-09-27 | 2012-11-20 | Sony Computer Entertainment Inc. | Operating processors over a network |
| US7975269B2 (en) * | 2005-09-27 | 2011-07-05 | Sony Computer Entertainment Inc. | Parallel processor methods and apparatus |
| US7644198B2 (en) * | 2005-10-07 | 2010-01-05 | International Business Machines Corporation | DMAC translation mechanism |
| KR100866951B1 (ko) * | 2005-10-28 | 2008-11-05 | 삼성전자주식회사 | 메모리에 저장된 데이터를 보호할 수 있는 프로그래머블프로세서 및 방법 |
| US8595747B2 (en) * | 2005-12-29 | 2013-11-26 | Sony Computer Entertainment Inc. | Efficient task scheduling by assigning fixed registers to scheduler |
| US20070174411A1 (en) * | 2006-01-26 | 2007-07-26 | Brokenshire Daniel A | Apparatus and method for efficient communication of producer/consumer buffer status |
| US7814166B2 (en) * | 2006-01-27 | 2010-10-12 | Sony Computer Entertainment Inc. | Methods and apparatus for virtualizing an address space |
| US7768287B2 (en) | 2006-01-27 | 2010-08-03 | Sony Computer Enterainment Inc. | Methods and apparatus for managing defective processors through power gating |
| US20070234385A1 (en) * | 2006-03-31 | 2007-10-04 | Rajendra Bopardikar | Cross-layer video quality manager |
| EP1903443B1 (en) * | 2006-04-06 | 2011-07-13 | Sony Corporation | Bridge, processor unit, information processing apparatus and access control method |
| US7886112B2 (en) * | 2006-05-24 | 2011-02-08 | Sony Computer Entertainment Inc. | Methods and apparatus for providing simultaneous software/hardware cache fill |
| US8082289B2 (en) | 2006-06-13 | 2011-12-20 | Advanced Cluster Systems, Inc. | Cluster computing support for application programs |
| US20090293072A1 (en) * | 2006-07-21 | 2009-11-26 | Sony Service Centre (Europe) N.V. | System having plurality of hardware blocks and method of operating the same |
| US7676683B2 (en) * | 2006-08-24 | 2010-03-09 | Sony Computer Entertainment Inc. | Method and system for rebooting a processor in a multi-processor system |
| US8788080B1 (en) | 2006-09-12 | 2014-07-22 | Sonos, Inc. | Multi-channel pairing in a media system |
| US8483853B1 (en) | 2006-09-12 | 2013-07-09 | Sonos, Inc. | Controlling and manipulating groupings in a multi-zone media system |
| US9202509B2 (en) | 2006-09-12 | 2015-12-01 | Sonos, Inc. | Controlling and grouping in a multi-zone media system |
| US12167216B2 (en) | 2006-09-12 | 2024-12-10 | Sonos, Inc. | Playback device pairing |
| US20080229143A1 (en) * | 2006-09-21 | 2008-09-18 | Sony Computer Entertainment Inc. | Management of available circuits to repair defective circuits |
| US7917667B2 (en) * | 2006-09-22 | 2011-03-29 | Sony Computer Entertainment Inc. | Methods and apparatus for allocating DMA activity between a plurality of entities |
| US7882379B2 (en) | 2006-09-22 | 2011-02-01 | Sony Computer Entertainment Inc. | Power consumption reduction in a multiprocessor system |
| US7546405B2 (en) * | 2006-09-26 | 2009-06-09 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic grouping of requestors of resources in a multi-processor system |
| US20080091886A1 (en) * | 2006-10-17 | 2008-04-17 | Sony Computer Entertainment Inc. | Dynamic Path Determination To An Address Concentrator |
| US7693053B2 (en) * | 2006-11-15 | 2010-04-06 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic redistribution of tokens in a multi-processor system |
| JP5079342B2 (ja) * | 2007-01-22 | 2012-11-21 | ルネサスエレクトロニクス株式会社 | マルチプロセッサ装置 |
| US8856782B2 (en) | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
| US8726041B2 (en) * | 2007-05-09 | 2014-05-13 | Sony Corporation | Methods and apparatus for generating a random number in one or more isolated processors |
| US7788467B2 (en) | 2007-05-09 | 2010-08-31 | Sony Computer Entertainment Inc. | Methods and apparatus for latency control in a multiprocessor system |
| US8001390B2 (en) * | 2007-05-09 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode |
| US8001592B2 (en) | 2007-05-09 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for accessing resources using a multiprocessor in a trusted mode |
| US7958371B2 (en) * | 2007-05-09 | 2011-06-07 | Sony Computer Entertainment Inc. | Methods and apparatus for secure operating system distribution in a multiprocessor system |
| EP2026147A1 (de) * | 2007-08-13 | 2009-02-18 | Siemens Aktiengesellschaft | Verfahren zum Übermitteln von Telegrammen zwischen einer Steuereinrichtung und einem Peripherieelement über ein Zwischengerät |
| CN101855606B (zh) * | 2007-11-13 | 2012-08-29 | 惠普开发有限公司 | 从功率管理状态启动应用程序 |
| US20100037020A1 (en) * | 2008-08-07 | 2010-02-11 | Seagate Technology Llc | Pipelined memory access method and architecture therefore |
| US20100058016A1 (en) * | 2008-08-26 | 2010-03-04 | Jari Nikara | Method, apparatus and software product for multi-channel memory sandbox |
| US9098698B2 (en) | 2008-09-12 | 2015-08-04 | George Mason Research Foundation, Inc. | Methods and apparatus for application isolation |
| US9961388B2 (en) | 2008-11-26 | 2018-05-01 | David Harrison | Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements |
| US10631068B2 (en) | 2008-11-26 | 2020-04-21 | Free Stream Media Corp. | Content exposure attribution based on renderings of related content across multiple devices |
| US10419541B2 (en) | 2008-11-26 | 2019-09-17 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
| US10880340B2 (en) | 2008-11-26 | 2020-12-29 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
| US10567823B2 (en) | 2008-11-26 | 2020-02-18 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
| US9154942B2 (en) | 2008-11-26 | 2015-10-06 | Free Stream Media Corp. | Zero configuration communication between a browser and a networked media device |
| US9519772B2 (en) | 2008-11-26 | 2016-12-13 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
| US9986279B2 (en) | 2008-11-26 | 2018-05-29 | Free Stream Media Corp. | Discovery, access control, and communication with networked services |
| US9026668B2 (en) | 2012-05-26 | 2015-05-05 | Free Stream Media Corp. | Real-time and retargeted advertising on multiple screens of a user watching television |
| US8180891B1 (en) | 2008-11-26 | 2012-05-15 | Free Stream Media Corp. | Discovery, access control, and communication with networked services from within a security sandbox |
| US9386356B2 (en) | 2008-11-26 | 2016-07-05 | Free Stream Media Corp. | Targeting with television audience data across multiple screens |
| US10334324B2 (en) | 2008-11-26 | 2019-06-25 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
| US10977693B2 (en) | 2008-11-26 | 2021-04-13 | Free Stream Media Corp. | Association of content identifier of audio-visual data with additional data through capture infrastructure |
| US8555089B2 (en) * | 2009-01-08 | 2013-10-08 | Panasonic Corporation | Program execution apparatus, control method, control program, and integrated circuit |
| US8839422B2 (en) | 2009-06-30 | 2014-09-16 | George Mason Research Foundation, Inc. | Virtual browsing environment |
| US8225061B2 (en) * | 2009-07-02 | 2012-07-17 | Apple Inc. | Method and apparatus for protected content data processing |
| US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
| US9015440B2 (en) | 2009-09-11 | 2015-04-21 | Micron Technology, Inc. | Autonomous memory subsystem architecture |
| US9582462B2 (en) | 2010-07-30 | 2017-02-28 | Hewlett Packard Enterprise Development Lp | Computer system and method for sharing computer memory |
| US20140013129A1 (en) | 2012-07-09 | 2014-01-09 | L. Pierre de Rochemont | Hybrid computing module |
| US11265652B2 (en) | 2011-01-25 | 2022-03-01 | Sonos, Inc. | Playback device pairing |
| US11429343B2 (en) | 2011-01-25 | 2022-08-30 | Sonos, Inc. | Stereo playback configuration and control |
| WO2013082437A1 (en) | 2011-12-02 | 2013-06-06 | Invincia, Inc. | Methods and apparatus for control and detection of malicious content using a sandbox environment |
| US9344292B2 (en) | 2011-12-30 | 2016-05-17 | Sonos, Inc. | Systems and methods for player setup room names |
| TWI483098B (zh) * | 2012-02-23 | 2015-05-01 | Acer Inc | 電腦系統及其功率分享方法 |
| JP5598493B2 (ja) * | 2012-03-30 | 2014-10-01 | 富士通株式会社 | 情報処理装置、演算装置および情報転送方法 |
| US9729115B2 (en) | 2012-04-27 | 2017-08-08 | Sonos, Inc. | Intelligently increasing the sound level of player |
| US9008330B2 (en) | 2012-09-28 | 2015-04-14 | Sonos, Inc. | Crossover frequency adjustments for audio speakers |
| US9510055B2 (en) | 2013-01-23 | 2016-11-29 | Sonos, Inc. | System and method for a media experience social interface |
| CN103150286A (zh) * | 2013-03-09 | 2013-06-12 | 郏惠忠 | 一种智能计算机系统 |
| US9307508B2 (en) | 2013-04-29 | 2016-04-05 | Google Technology Holdings LLC | Systems and methods for syncronizing multiple electronic devices |
| CN104375946B (zh) * | 2013-08-16 | 2018-04-20 | 华为技术有限公司 | 一种数据处理的方法及装置 |
| US9288596B2 (en) | 2013-09-30 | 2016-03-15 | Sonos, Inc. | Coordinator device for paired or consolidated players |
| US20150095679A1 (en) | 2013-09-30 | 2015-04-02 | Sonos, Inc. | Transitioning A Networked Playback Device Between Operating Modes |
| US9720576B2 (en) | 2013-09-30 | 2017-08-01 | Sonos, Inc. | Controlling and displaying zones in a multi-zone system |
| US9654545B2 (en) | 2013-09-30 | 2017-05-16 | Sonos, Inc. | Group coordinator device selection |
| US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
| US9300647B2 (en) | 2014-01-15 | 2016-03-29 | Sonos, Inc. | Software application and zones |
| US9313591B2 (en) | 2014-01-27 | 2016-04-12 | Sonos, Inc. | Audio synchronization among playback devices using offset information |
| US20150220498A1 (en) | 2014-02-05 | 2015-08-06 | Sonos, Inc. | Remote Creation of a Playback Queue for a Future Event |
| US9226073B2 (en) | 2014-02-06 | 2015-12-29 | Sonos, Inc. | Audio output balancing during synchronized playback |
| US9226087B2 (en) | 2014-02-06 | 2015-12-29 | Sonos, Inc. | Audio output balancing during synchronized playback |
| US9679054B2 (en) | 2014-03-05 | 2017-06-13 | Sonos, Inc. | Webpage media playback |
| US10587693B2 (en) | 2014-04-01 | 2020-03-10 | Sonos, Inc. | Mirrored queues |
| US20150324552A1 (en) | 2014-05-12 | 2015-11-12 | Sonos, Inc. | Share Restriction for Media Items |
| US20150356084A1 (en) | 2014-06-05 | 2015-12-10 | Sonos, Inc. | Social Queue |
| US9874997B2 (en) | 2014-08-08 | 2018-01-23 | Sonos, Inc. | Social playback queues |
| EP3114852A1 (en) | 2014-09-24 | 2017-01-11 | Sonos Inc. | Social media queue |
| US9723038B2 (en) | 2014-09-24 | 2017-08-01 | Sonos, Inc. | Social media connection recommendations based on playback information |
| US9860286B2 (en) | 2014-09-24 | 2018-01-02 | Sonos, Inc. | Associating a captured image with a media item |
| US9667679B2 (en) | 2014-09-24 | 2017-05-30 | Sonos, Inc. | Indicating an association between a social-media account and a media playback system |
| US9959087B2 (en) | 2014-09-24 | 2018-05-01 | Sonos, Inc. | Media item context from social media |
| US10645130B2 (en) | 2014-09-24 | 2020-05-05 | Sonos, Inc. | Playback updates |
| EP3114625A1 (en) | 2014-09-24 | 2017-01-11 | Sonos, Inc. | Social media connection recommendations based on playback information |
| US9690540B2 (en) | 2014-09-24 | 2017-06-27 | Sonos, Inc. | Social media queue |
| US10868880B2 (en) | 2015-04-30 | 2020-12-15 | V2Com S.A. | Control system with persistent and transient data stores for registration, production and status data for networked devices |
| US10761900B1 (en) * | 2015-04-30 | 2020-09-01 | V2Com S.A. | System and method for secure distributed processing across networks of heterogeneous processing nodes |
| US10248376B2 (en) | 2015-06-11 | 2019-04-02 | Sonos, Inc. | Multiple groupings in a playback system |
| US10303422B1 (en) | 2016-01-05 | 2019-05-28 | Sonos, Inc. | Multiple-device setup |
| US9886234B2 (en) | 2016-01-28 | 2018-02-06 | Sonos, Inc. | Systems and methods of distributing audio to one or more playback devices |
| US10303488B2 (en) | 2016-03-30 | 2019-05-28 | Sony Interactive Entertainment Inc. | Real-time adjustment of application-specific operating parameters for backwards compatibility |
| US10712997B2 (en) | 2016-10-17 | 2020-07-14 | Sonos, Inc. | Room association based on name |
| JP2018156289A (ja) * | 2017-03-16 | 2018-10-04 | 東芝メモリ株式会社 | 共有メモリコントローラ、共有メモリモジュールおよびメモリ共有システム |
| US10635602B2 (en) | 2017-11-14 | 2020-04-28 | International Business Machines Corporation | Address translation prior to receiving a storage reference using the address to be translated |
| US10901738B2 (en) | 2017-11-14 | 2021-01-26 | International Business Machines Corporation | Bulk store and load operations of configuration state registers |
| US10761751B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Configuration state registers grouped based on functional affinity |
| US10698686B2 (en) | 2017-11-14 | 2020-06-30 | International Business Machines Corporation | Configurable architectural placement control |
| US10642757B2 (en) | 2017-11-14 | 2020-05-05 | International Business Machines Corporation | Single call to perform pin and unpin operations |
| US10496437B2 (en) | 2017-11-14 | 2019-12-03 | International Business Machines Corporation | Context switch by changing memory pointers |
| US10664181B2 (en) | 2017-11-14 | 2020-05-26 | International Business Machines Corporation | Protecting in-memory configuration state registers |
| US10558366B2 (en) | 2017-11-14 | 2020-02-11 | International Business Machines Corporation | Automatic pinning of units of memory |
| US10761983B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Memory based configuration state registers |
| US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
| US10552070B2 (en) | 2017-11-14 | 2020-02-04 | International Business Machines Corporation | Separation of memory-based configuration state registers based on groups |
| CN109472133B (zh) * | 2017-12-01 | 2021-09-28 | 北京安天网络安全技术有限公司 | 一种沙箱监控方法和装置 |
| BR112020017898A2 (pt) * | 2018-03-01 | 2020-12-22 | V2Com S.A. | Sistema e método para processamento distribuído seguro através de redes de nós de processamento heterogêneo |
| US11121302B2 (en) | 2018-10-11 | 2021-09-14 | SeeQC, Inc. | System and method for superconducting multi-chip module |
| US12549945B2 (en) | 2020-09-25 | 2026-02-10 | Sonos, Inc. | Intelligent setup for playback devices |
| US12536041B2 (en) | 2022-05-16 | 2026-01-27 | Bank Of America Corporation | System and method for determining memory resource configuration for network nodes to operate in a distributed computing network |
Family Cites Families (155)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3576544A (en) | 1968-10-18 | 1971-04-27 | Ibm | Storage protection system |
| US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
| JPS5412643A (en) | 1977-06-30 | 1979-01-30 | Hitachi Ltd | Main memory protective device |
| JPS54146555A (en) | 1978-05-09 | 1979-11-15 | Nec Corp | Data transfer system between processors |
| US4314349A (en) | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
| US4332009A (en) | 1980-01-21 | 1982-05-25 | Mostek Corporation | Memory protection system |
| JPS5812613B2 (ja) | 1980-02-08 | 1983-03-09 | 工業技術院長 | 並列デ−タ処理装置 |
| JPS5835295B2 (ja) | 1980-03-03 | 1983-08-02 | オムロン株式会社 | マスタ・スレ−ブ・システムにおけるデ−タ転送方式 |
| US4430705A (en) | 1980-05-23 | 1984-02-07 | International Business Machines Corp. | Authorization mechanism for establishing addressability to information in another address space |
| JPS576952A (en) | 1980-06-16 | 1982-01-13 | Nippon Telegr & Teleph Corp <Ntt> | Storage protecting system |
| US4414624A (en) * | 1980-11-19 | 1983-11-08 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-microcomputer processing |
| JPS57176456A (en) * | 1981-04-22 | 1982-10-29 | Fanuc Ltd | Data processing system |
| DE3171379D1 (en) | 1981-04-28 | 1985-08-22 | Ibm | Bus arrangement for interconnectiong circuit chips |
| JPS5877404A (ja) | 1981-10-28 | 1983-05-10 | Heian Tekkosho:Kk | ハニカムの薄切削方法 |
| AU542447B2 (en) | 1982-02-27 | 1985-02-21 | Fujitsu Limited | System for controlling key storage unit |
| JPS5958700A (ja) | 1982-09-29 | 1984-04-04 | Fujitsu Ltd | 記憶保護判定方式 |
| US4545016A (en) | 1983-01-07 | 1985-10-01 | Tandy Corporation | Memory management system |
| US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
| US5159700A (en) | 1984-01-16 | 1992-10-27 | Texas Instruments Incorporated | Substrate with optical communication systems between chips mounted thereon and monolithic integration of optical I/O on silicon substrates |
| JPS60151903A (ja) | 1984-01-19 | 1985-08-10 | タツタ電線株式会社 | 水密絶縁電線およびその製造方法 |
| JPS61180352A (ja) | 1984-12-30 | 1986-08-13 | Fujitsu Ltd | プログラムダウンロ−ド方式 |
| US4732446A (en) | 1985-10-02 | 1988-03-22 | Lamar Gipson | Electrical circuit and optical data buss |
| CA1280829C (en) * | 1985-11-13 | 1991-02-26 | Toshio Matsumoto | Main storage access control system for virtual computing function system |
| JPS6319058A (ja) | 1986-07-11 | 1988-01-26 | Fujitsu Ltd | メモリ装置 |
| JPS6241986A (ja) | 1986-08-29 | 1987-02-23 | Hitachi Ltd | オイルフリースクリユー圧縮機結合体 |
| JPS6365222A (ja) | 1986-09-03 | 1988-03-23 | Tokyo Tatsuno Co Ltd | 触媒燃焼装置 |
| US4816989A (en) * | 1987-04-15 | 1989-03-28 | Allied-Signal Inc. | Synchronizer for a fault tolerant multiple node processing system |
| JP2960415B2 (ja) | 1987-05-22 | 1999-10-06 | 株式会社日立製作所 | 記憶保護方法および装置 |
| JPS6412364A (en) | 1987-07-06 | 1989-01-17 | Nippon Telegraph & Telephone | System constitution control system |
| JPS6412364U (es) | 1987-07-11 | 1989-01-23 | ||
| JPS6423342A (en) | 1987-07-20 | 1989-01-26 | Mitsubishi Electric Corp | Programmable controller |
| JPH0719704Y2 (ja) | 1987-07-31 | 1995-05-10 | シャープ株式会社 | 生産ラインの生産管理装置 |
| JPH0612333Y2 (ja) | 1987-12-28 | 1994-03-30 | 株式会社ゼクセル | 車両用熱焼式ヒータの燃焼器 |
| JP2677589B2 (ja) | 1988-02-26 | 1997-11-17 | 株式会社東芝 | 携帯可能電子装置およびicチップ |
| US5056000A (en) | 1988-06-21 | 1991-10-08 | International Parallel Machines, Inc. | Synchronized parallel processing with shared memory |
| JPH0212361A (ja) | 1988-06-29 | 1990-01-17 | Fujitsu Ltd | 階層化バスによる並列計算機システム |
| US4939682A (en) | 1988-07-15 | 1990-07-03 | The Boeing Company | Integrated electro-optic arithmetic/logic unit and method for making the same |
| JP2837413B2 (ja) | 1988-08-24 | 1998-12-16 | 株式会社日立メディコ | 複数端末cpuを有するct装置 |
| EP0369052A1 (en) * | 1988-11-17 | 1990-05-23 | International Business Machines Corporation | Data base access system |
| JPH02210542A (ja) | 1989-02-10 | 1990-08-21 | Fujitsu Ltd | 仮想計算機システムにおける実行制御方式 |
| EP0424618A3 (en) | 1989-10-24 | 1992-11-19 | International Business Machines Corporation | Input/output system |
| US5037173A (en) | 1989-11-22 | 1991-08-06 | Texas Instruments Incorporated | Optical interconnection network |
| AU645785B2 (en) | 1990-01-05 | 1994-01-27 | Maspar Computer Corporation | Parallel processor memory system |
| US5357632A (en) | 1990-01-09 | 1994-10-18 | Hughes Aircraft Company | Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors |
| DE69130086T2 (de) | 1990-06-15 | 1999-01-21 | Compaq Computer Corp., Houston, Tex. 77070 | Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien |
| US5093879A (en) | 1990-06-22 | 1992-03-03 | International Business Machines Corporation | Electro-optical connectors |
| US5144691A (en) | 1990-07-20 | 1992-09-01 | Cray Research, Inc. | Computer signal interconnect apparatus |
| US5303369A (en) | 1990-08-31 | 1994-04-12 | Texas Instruments Incorporated | Scheduling system for multiprocessor operating system |
| EP0481735A3 (en) | 1990-10-19 | 1993-01-13 | Array Technology Corporation | Address protection circuit |
| US5630162A (en) | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
| US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
| KR940004404B1 (ko) | 1990-11-30 | 1994-05-25 | 삼성전자 주식회사 | 불휘발성 반도체 메모리장치 |
| US5131054A (en) | 1991-01-09 | 1992-07-14 | Thinking Machines Corporation | Character recognition system using massively parallel computer that identifies a query character using degree of similarity with plurality of training characters of known identity |
| JPH04284754A (ja) | 1991-03-14 | 1992-10-09 | Fujitsu Ltd | Atm交換装置 |
| JPH04288643A (ja) | 1991-03-18 | 1992-10-13 | Nec Corp | マルチプロセッサシステムのメモリマッピング方式 |
| US5519875A (en) | 1991-08-08 | 1996-05-21 | Hitachi, Ltd. | Distributed processing system for modules, each having modularized objects |
| US5404563A (en) | 1991-08-28 | 1995-04-04 | International Business Machines Corporation | Scheduling normally interchangeable facilities in multiprocessor computer systems |
| JPH0554009A (ja) | 1991-08-29 | 1993-03-05 | Nec Eng Ltd | プログラムロード方式 |
| US5361370A (en) | 1991-10-24 | 1994-11-01 | Intel Corporation | Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port |
| JP3364937B2 (ja) | 1991-11-29 | 2003-01-08 | 株式会社日立製作所 | 並列演算装置 |
| US5268973A (en) | 1992-01-21 | 1993-12-07 | The University Of Texas System | Wafer-scale optical bus |
| JPH05242057A (ja) | 1992-02-27 | 1993-09-21 | Sanyo Electric Co Ltd | マルチプロセッサシステムの起動方式 |
| JPH05324589A (ja) | 1992-03-25 | 1993-12-07 | Nippon Sheet Glass Co Ltd | 並列コンピュータ装置および光結合装置 |
| JPH0612333A (ja) | 1992-06-25 | 1994-01-21 | Hitachi Ltd | 情報処理装置の記憶保護方式 |
| US5394524A (en) * | 1992-08-07 | 1995-02-28 | International Business Machines Corporation | Method and apparatus for processing two graphics data streams in parallel |
| EP0610583A1 (en) * | 1993-02-08 | 1994-08-17 | International Business Machines Corporation | Multizone relocation facility computer memory system |
| US5619671A (en) | 1993-04-19 | 1997-04-08 | International Business Machines Corporation | Method and apparatus for providing token controlled access to protected pages of memory |
| US5487146A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Plural memory access address generation employing guide table entries forming linked list |
| US5815403A (en) | 1994-04-19 | 1998-09-29 | Lsi Logic Corporation | Fail-safe distributive processing method for producing a highest fitness cell placement for an integrated circuit chip |
| JPH07287064A (ja) | 1994-04-20 | 1995-10-31 | Mitsubishi Electric Corp | レーダ信号処理装置 |
| US5513337A (en) | 1994-05-25 | 1996-04-30 | Intel Corporation | System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type |
| JPH08161283A (ja) | 1994-12-07 | 1996-06-21 | Sony Corp | 複数プロセツサシステム |
| US5754436A (en) | 1994-12-22 | 1998-05-19 | Texas Instruments Incorporated | Adaptive power management processes, circuits and systems |
| JPH08180018A (ja) | 1994-12-26 | 1996-07-12 | Toshiba Corp | 分散処理システム及び分散処理方法 |
| JPH08212178A (ja) | 1995-02-08 | 1996-08-20 | Hitachi Ltd | 並列計算機 |
| CA2170468A1 (en) | 1995-02-28 | 1996-08-29 | Noriyuki Ando | Multi-processor system with virtually addressable communication registers and controlling method thereof |
| JP2731742B2 (ja) | 1995-02-28 | 1998-03-25 | 甲府日本電気株式会社 | クラスタ構成の並列計算機 |
| JPH08249261A (ja) | 1995-03-08 | 1996-09-27 | Mitsubishi Electric Corp | メッセージ管理システム |
| DE19508723A1 (de) | 1995-03-10 | 1996-09-12 | Siemens Ag | Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz |
| US5850534A (en) | 1995-06-05 | 1998-12-15 | Advanced Micro Devices, Inc. | Method and apparatus for reducing cache snooping overhead in a multilevel cache system |
| US6331856B1 (en) * | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
| JP3786993B2 (ja) | 1995-12-14 | 2006-06-21 | 株式会社日立製作所 | データ記憶ユニット及び該ユニットを用いたデータ記憶装置 |
| US6886167B1 (en) | 1995-12-27 | 2005-04-26 | International Business Machines Corporation | Method and system for migrating an object between a split status and a merged status |
| JPH09198361A (ja) | 1996-01-23 | 1997-07-31 | Kofu Nippon Denki Kk | マルチプロセッサシステム |
| US5729712A (en) | 1996-01-26 | 1998-03-17 | Unisys Corporation | Smart fill system for multiple cache network |
| US5761516A (en) * | 1996-05-03 | 1998-06-02 | Lsi Logic Corporation | Single chip multiprocessor architecture with internal task switching synchronization bus |
| JPH09311839A (ja) | 1996-05-21 | 1997-12-02 | Hitachi Ltd | データ共用方式 |
| US5940870A (en) | 1996-05-21 | 1999-08-17 | Industrial Technology Research Institute | Address translation for shared-memory multiprocessor clustering |
| US5724551A (en) * | 1996-05-23 | 1998-03-03 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers |
| US5787309A (en) * | 1996-05-23 | 1998-07-28 | International Business Machines Corporation | Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits |
| US5900019A (en) | 1996-05-23 | 1999-05-04 | International Business Machines Corporation | Apparatus for protecting memory storage blocks from I/O accesses |
| US5740409A (en) | 1996-07-01 | 1998-04-14 | Sun Microsystems, Inc. | Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities |
| AT1751U1 (de) | 1996-09-30 | 1997-10-27 | Kuehn Eva | Koordinations-system |
| JPH10126771A (ja) | 1996-10-15 | 1998-05-15 | Toshiba Corp | 画像データ転送システムにおける画像データ送出レート制御方法および画像データ転送方法 |
| JP3421526B2 (ja) | 1997-02-14 | 2003-06-30 | モトローラ株式会社 | デ−タ処理装置 |
| US6192514B1 (en) | 1997-02-19 | 2001-02-20 | Unisys Corporation | Multicomputer system |
| US6424988B2 (en) | 1997-02-19 | 2002-07-23 | Unisys Corporation | Multicomputer system |
| US6289434B1 (en) | 1997-02-28 | 2001-09-11 | Cognigine Corporation | Apparatus and method of implementing systems on silicon using dynamic-adaptive run-time reconfigurable circuits for processing multiple, independent data and control streams of varying rates |
| JP3739888B2 (ja) | 1997-03-27 | 2006-01-25 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
| JP3681026B2 (ja) * | 1997-03-27 | 2005-08-10 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
| US6212605B1 (en) | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Eviction override for larx-reserved addresses |
| JPH1139215A (ja) | 1997-05-22 | 1999-02-12 | Matsushita Electric Ind Co Ltd | キャッシュメモリおよびキャッシュメモリを制御する方法 |
| JPH10340165A (ja) * | 1997-06-09 | 1998-12-22 | Canon Inc | 情報処理装置及びその方法並びにメモリ媒体 |
| US6457012B1 (en) * | 1997-06-10 | 2002-09-24 | Pitney Bowes Inc. | Method and system of updating address records utilizing a clientserver interface |
| JP3490256B2 (ja) | 1997-06-12 | 2004-01-26 | 三菱電機株式会社 | エージェント方式 |
| US5892966A (en) | 1997-06-27 | 1999-04-06 | Sun Microsystems, Inc. | Processor complex for executing multimedia functions |
| US6360303B1 (en) * | 1997-09-30 | 2002-03-19 | Compaq Computer Corporation | Partitioning memory shared by multiple processors of a distributed processing system |
| US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
| US6209065B1 (en) | 1997-10-24 | 2001-03-27 | Compaq Computer Corporation | Mechanism for optimizing generation of commit-signals in a distributed shared-memory system |
| US6002409A (en) * | 1997-10-29 | 1999-12-14 | Cirrus Logic, Inc. | Arbitration for shared graphics processing resources |
| US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
| US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
| US6173389B1 (en) | 1997-12-04 | 2001-01-09 | Billions Of Operations Per Second, Inc. | Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor |
| JPH11232247A (ja) | 1998-02-10 | 1999-08-27 | Hitachi Ltd | データフロー計算機およびデータフロー制御方法 |
| US6167430A (en) | 1998-05-12 | 2000-12-26 | Unisys Corporation | Multicomputer with distributed directory and operating system |
| JPH11338833A (ja) | 1998-05-22 | 1999-12-10 | Hitachi Ltd | マルチプロセッサ型コントローラ及びスケーラブルコントローラシステム |
| US6336187B1 (en) * | 1998-06-12 | 2002-01-01 | International Business Machines Corp. | Storage system with data-dependent security |
| US6209066B1 (en) * | 1998-06-30 | 2001-03-27 | Sun Microsystems, Inc. | Method and apparatus for memory allocation in a multi-threaded virtual machine |
| JP3224782B2 (ja) | 1998-08-03 | 2001-11-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 処理分担動的変更方法及びコンピュータ |
| US6141762A (en) * | 1998-08-03 | 2000-10-31 | Nicol; Christopher J. | Power reduction in a multiprocessor digital signal processor based on processor load |
| JP2000132529A (ja) | 1998-10-23 | 2000-05-12 | Sony Corp | 並列処理装置、並列処理方法および記録媒体 |
| US6643708B1 (en) | 1998-10-29 | 2003-11-04 | International Business Machines Corporation | Systems, methods and computer program products for chaining Java servlets across networks |
| US6633563B1 (en) * | 1999-03-02 | 2003-10-14 | Nortel Networks Limited | Assigning cell data to one of several processors provided in a data switch |
| JP3790060B2 (ja) | 1999-01-29 | 2006-06-28 | 株式会社山武 | 演算処理装置 |
| US6341338B1 (en) * | 1999-02-04 | 2002-01-22 | Sun Microsystems, Inc. | Protocol for coordinating the distribution of shared memory |
| JP4123621B2 (ja) * | 1999-02-16 | 2008-07-23 | 株式会社日立製作所 | 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法 |
| US6480941B1 (en) * | 1999-02-23 | 2002-11-12 | International Business Machines Corporation | Secure partitioning of shared memory based multiprocessor system |
| US6753878B1 (en) | 1999-03-08 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Parallel pipelined merge engines |
| US6647208B1 (en) | 1999-03-18 | 2003-11-11 | Massachusetts Institute Of Technology | Hybrid electronic/optical switch system |
| US6477170B1 (en) | 1999-05-21 | 2002-11-05 | Advanced Micro Devices, Inc. | Method and apparatus for interfacing between systems operating under different clock regimes with interlocking to prevent overwriting of data |
| EP1065592B1 (en) | 1999-06-25 | 2008-07-23 | Canon Research Centre France S.A. | Shared management of data objects in a communication network |
| US6467012B1 (en) | 1999-07-08 | 2002-10-15 | International Business Machines Corporation | Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors |
| US6668317B1 (en) | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
| US6577311B1 (en) * | 1999-12-16 | 2003-06-10 | Picture Iq Corporation | Techniques for automatically providing a high-resolution rendering of a low resolution digital image in a distributed network |
| US6564328B1 (en) * | 1999-12-23 | 2003-05-13 | Intel Corporation | Microprocessor with digital power throttle |
| US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
| JP2001195230A (ja) * | 2000-01-14 | 2001-07-19 | Mitsubishi Electric Corp | 描画処理システム、及び描画演算を行う半導体集積回路 |
| US6694336B1 (en) | 2000-01-25 | 2004-02-17 | Fusionone, Inc. | Data transfer and synchronization system |
| US6807620B1 (en) | 2000-02-11 | 2004-10-19 | Sony Computer Entertainment Inc. | Game system with graphics processor |
| US6799207B1 (en) | 2000-04-10 | 2004-09-28 | International Business Machines Corporation | Method and system for downloading software managed trees in a network processing system |
| JP4640880B2 (ja) | 2000-07-14 | 2011-03-02 | 国立大学法人東京工業大学 | マイクロプロセッサシステム |
| US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
| US20030069985A1 (en) | 2000-10-02 | 2003-04-10 | Eduardo Perez | Computer readable media for storing video data |
| US6865631B2 (en) * | 2000-12-14 | 2005-03-08 | International Business Machines Corporation | Reduction of interrupts in remote procedure calls |
| US6779049B2 (en) * | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
| US7020871B2 (en) | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
| US6748501B2 (en) | 2000-12-30 | 2004-06-08 | International Business Machines Corporation | Microprocessor reservation mechanism for a hashed address system |
| US6779045B2 (en) | 2001-03-21 | 2004-08-17 | Intel Corporation | System and apparatus for increasing the number of operations per transmission for a media management system |
| US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
| US7233998B2 (en) | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
| US6826662B2 (en) | 2001-03-22 | 2004-11-30 | Sony Computer Entertainment Inc. | System and method for data synchronization for a computer architecture for broadband networks |
| US7254812B1 (en) | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
| JP3673245B2 (ja) | 2002-06-28 | 2005-07-20 | 株式会社東芝 | 情報処理装置および同装置における電源制御方法 |
| JP2004103347A (ja) | 2002-09-09 | 2004-04-02 | Sumitomo Wiring Syst Ltd | コネクタ |
| US7361220B2 (en) * | 2003-03-26 | 2008-04-22 | Matsushita Electric Industrial Co., Ltd. | Method of manufacturing group III nitride single crystal, device used for the method and group III nitride single crystal obtained by the method |
-
2001
- 2001-03-22 US US09/816,020 patent/US6526491B2/en not_active Expired - Lifetime
-
2002
- 2002-03-19 EP EP02705345A patent/EP1370948B1/en not_active Expired - Lifetime
- 2002-03-19 CN CNB028063481A patent/CN1291327C/zh not_active Expired - Lifetime
- 2002-03-19 KR KR1020037012342A patent/KR100890134B1/ko not_active Expired - Lifetime
- 2002-03-19 ES ES02705345T patent/ES2346045T3/es not_active Expired - Lifetime
- 2002-03-19 WO PCT/JP2002/002606 patent/WO2002077826A1/en not_active Ceased
- 2002-03-19 DE DE60236416T patent/DE60236416D1/de not_active Expired - Lifetime
- 2002-03-20 JP JP2002079358A patent/JP3454808B2/ja not_active Expired - Lifetime
- 2002-03-22 TW TW091105566A patent/TW556087B/zh not_active IP Right Cessation
-
2003
- 2003-02-21 US US10/371,322 patent/US7139882B2/en not_active Expired - Lifetime
- 2003-03-31 JP JP2003097175A patent/JP4334901B2/ja not_active Expired - Lifetime
-
2004
- 2004-10-18 US US10/967,579 patent/US7457939B2/en not_active Expired - Lifetime
- 2004-10-18 US US10/967,362 patent/US8434091B2/en active Active
- 2004-10-18 US US10/967,433 patent/US8028288B2/en active Active
- 2004-10-18 US US10/967,363 patent/US7999813B2/en not_active Expired - Fee Related
-
2011
- 2011-08-10 US US13/206,968 patent/US8321866B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US7999813B2 (en) | 2011-08-16 |
| JP2002342165A (ja) | 2002-11-29 |
| JP3454808B2 (ja) | 2003-10-06 |
| KR20030086320A (ko) | 2003-11-07 |
| KR100890134B1 (ko) | 2009-03-20 |
| US20050081213A1 (en) | 2005-04-14 |
| US8028288B2 (en) | 2011-09-27 |
| US7457939B2 (en) | 2008-11-25 |
| EP1370948A1 (en) | 2003-12-17 |
| WO2002077826A1 (en) | 2002-10-03 |
| US20020138701A1 (en) | 2002-09-26 |
| US20110302591A1 (en) | 2011-12-08 |
| JP4334901B2 (ja) | 2009-09-30 |
| JP2003303134A (ja) | 2003-10-24 |
| CN1291327C (zh) | 2006-12-20 |
| DE60236416D1 (de) | 2010-07-01 |
| US8434091B2 (en) | 2013-04-30 |
| US20050081209A1 (en) | 2005-04-14 |
| TW556087B (en) | 2003-10-01 |
| US20050097302A1 (en) | 2005-05-05 |
| US20030229765A1 (en) | 2003-12-11 |
| CN1496511A (zh) | 2004-05-12 |
| EP1370948B1 (en) | 2010-05-19 |
| EP1370948A4 (en) | 2007-09-05 |
| US7139882B2 (en) | 2006-11-21 |
| US6526491B2 (en) | 2003-02-25 |
| US8321866B2 (en) | 2012-11-27 |
| US20050078117A1 (en) | 2005-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2346045T3 (es) | Sistema y metodo de control de acceso a memoria compartida para una arquitectura de ordenador para redes de banda ancha. | |
| US6809734B2 (en) | Resource dedication system and method for a computer architecture for broadband networks | |
| US7720982B2 (en) | Computer architecture and software cells for broadband networks | |
| US7093104B2 (en) | Processing modules for computer architecture for broadband networks | |
| US6826662B2 (en) | System and method for data synchronization for a computer architecture for broadband networks | |
| US7475257B2 (en) | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data | |
| KR100939398B1 (ko) | 광대역 네트워크들을 위한 컴퓨터 아키텍쳐에서의 외부데이터 인터페이스 | |
| US20080162877A1 (en) | Non-Homogeneous Multi-Processor System With Shared Memory | |
| US20060155955A1 (en) | SIMD-RISC processor module |