MXPA97006495A - Una arquitectura de memoria unificada con asignacion dinamica de memoria de graficos - Google Patents

Una arquitectura de memoria unificada con asignacion dinamica de memoria de graficos

Info

Publication number
MXPA97006495A
MXPA97006495A MXPA/A/1997/006495A MX9706495A MXPA97006495A MX PA97006495 A MXPA97006495 A MX PA97006495A MX 9706495 A MX9706495 A MX 9706495A MX PA97006495 A MXPA97006495 A MX PA97006495A
Authority
MX
Mexico
Prior art keywords
memory
memory controller
graphics
computer system
coupled
Prior art date
Application number
MXPA/A/1997/006495A
Other languages
English (en)
Other versions
MX9706495A (es
Inventor
J K Nielsen Michael
S Hussain Zahid
Original Assignee
Silicon Graphics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/713,779 external-priority patent/US6104417A/en
Application filed by Silicon Graphics Inc filed Critical Silicon Graphics Inc
Publication of MX9706495A publication Critical patent/MX9706495A/es
Publication of MXPA97006495A publication Critical patent/MXPA97006495A/es

Links

Abstract

En la presente invención se describe un sistema de computadora que proporciona la asignación dinámica de memoria para gráficos. El sistema de computadora incluye un controlador de memoria, una memoria del sistema, unificada, clientes de memoria cada uno que tiene acceso a la memoria del sistema vía el controlador de memoria. Los clientes de memoria puedenincluir una máquina de representación de gráficos de compresión/expansión de datos, un dispositivo de entrada/salida, un dispositivo posterior de gráficos. El sistema de computadora proporciona acceso de lectura/escritura a la memoria del sistema, unificada, a través del controlador de memoria, para cada uno de los clientes en memoria. Se incluyen elementos físicos de traducción para la correlación de direcciones virtuales de las memorias intermedias de pixeles a las ubicaciones de la memoria física en la memoria del sistema, unificada. Las memorias intermedias del sistema, unificada dinámicamente como baldosas de memoria físicamente contigua. Los elementos físicos de traducción implementan en cada uno de los dispositivos de computadora, que se incluyen como los clientes de memoria en el sistema de computadora, que incluyen principalmente la máquina de representación.

Description

UNA ARQUITECTURA DE MEMORIA UNIFICADA CON ASIGNACIÓN DINÁMICA DE MEMORIA DE GRÁFICOS ANTECEDENTES DE LA INVENCIÓN La presente invención se refiere al campo de sistemas de computadora. En forma más especifica, la presente invención se refiere a una arquitectura de sistema de computadora que incluye la asignación dinámica de memoria de memorias intermedias de pixel para el procesamiento de gráficos e imágenes.
ANTECEDENTES DE LA INVENCIÓN Los sistemas tipicos de computadoras de la técnica anterior frecuentemente dependen de procesadores periféricos y unidades de memoria, periféricas, dedicadas para realizar varias operaciones de computadora. Por ejemplo, se usan procesadores periféricos de visualización de gráficos, para dar o representar imágenes de gráficos (síntesis) y se usan procesadores periféricos de imagen para realizar el procesamiento de imágenes (análisis) . En los sistemas tipicos de computadora de la técnica anterior, la memoria principal de la CPU (unidad de procesamiento REF: 25538 central) se separa de las unidades periféricas de memoria, que se pueden dedicar a la producción de gráficos o procesamiento de imágenes u otras funciones de computadora. Con referencia a la Figura 1 de la técnica anterior, se muestra un sistema 100 de gráficos de computadora de la técnica anterior. El sistema 100 de gráficos de computadora de la técnica anterior incluye tres unidades de memoria, separadas, una memoria principal 102, una memoria 104 de gráficos, dedicada, y una memoria 105 de procesamiento de imágenes, dedicada, (memoria del procesador de imágenes). La memoria principal 102 proporciona el acceso rápido a los datos para una CPU 106 y un dispositivo 108 de entrada/salida. La CPU 106 y el dispositivo 108 de entrada/salida se conectan a la memoria principal 102 via un controlador 110 de la memoria principal. La memoria 104 de gráficos, dedicada, proporciona el acceso rápido a los datos de los gráficos para un procesador 112 de gráficos via un controlador 114 de memoria de gráficos. La memoria 105 del procesador de imágenes, dedicada proporciona el acceso rápido a las memorias intermedias de los datos usadas por un procesador 116 de imágenes via un controlador 118 de memoria del procesador de imágenes. En el sistema 100 de gráficos de computadora, de la técnica anterior, las CPU 106 tiene acceso de lectura/escritura a la memoria 102 principal pero no a la memoria 104 de gráficos, dedicada o a la memoria 105 del procesador de imágenes, dedicada. Igualmente, el procesador 116 de imágenes tiene acceso de lectura/escritura a la memoria 105 del procesador de imágenes, dedicada, pero no a la memoria 102 principal o a la memoria 104 de gráficos, dedicada. De manera similar el procesador 112 de gráficos tiene acceso de lectura/escritura a la memoria 104 de gráficos, dedicada pero no a la memoria principal 102 ó a la memoria 105 del procesador de imágenes, dedicada. Ciertas aplicaciones de los sistemas de computadora requieren que los datos, almacenados en la memoria principal 102 ó en una de las unidades 104, 105 de memoria, dedicadas, se operen por un procesador diferente del procesador que tiene acceso a la unidad de memoria en la cual se almacenan los datos deseados. Cada vez que los datos almacenados en una unidad de memoria particular se van a procesar por un procesador designado diferente al procesador que tiene acceso a esa unidad de memoria particular, los datos se deben transferir a una unidad de memoria para la cual tiene acceso el procesador designado. Por ejemplo, ciertas aplicaciones de procesamiento de imágenes requieren que los datos, almacenados en la memoria principal 102 ó en la memoria 104 de gráficos, dedicada, se procesen por el procesador 116 de imágenes. El procesamiento de imágenes se define como cualquier (a.) función (es) que aplique (n) a dos bloques dimensionales de pixeles. Estos pixeles o elementos de imagen pueden estar en el formato de imágenes del sistema de archivo, campos, o cuadros de video que entran al sistema 100 de computadora de la técnica anterior a través de los puertos de video, dispositivo de almacenamiento en masa tal como CD-ROM, subsistemas de disco fijo y puertos de red de área local o amplia. A fin de permitir que el procesador 116 de imágenes tenga acceso a los datos almacenados en la memoria principal 102 o en la memoria 104 de gráficos, dedicada, los datos se deben transferir o copiar a la memoria 105 del procesador de imágenes, dedicada. Un problema con el sistema 100 de gráficos de computadora de la técnica anterior es el costo de los sistemas periféricos de memoria, dedicados, de alto desempeño tal como la unidad 104 de memoria de gráficos, dedicada y la memoria 105 de procesador de imágenes, dedicada. Otro problema con el sistema 100 de gráfico de computadora de la técnica anterior es el costo de las interconexiones de alto desempeño para los múltiples sistemas de memoria. Otro problema con el sistema 100 de gráficos de la técnica anterior es que la transferencia de datos discutida anteriormente entre las unidades de memoria requiere tiempo y recursos de procesamiento. De esta manera, lo que se necesita es una arquitectura de sistema de computadora con un sistema de memoria, unificado, o individual que se pueda compartir por múltiples procesadores en el sistema de computadora sin que se transfieran los datos entre múltiples unidades de memoria, dedicadas.
BREVE DESCRIPCIÓN DE LA INVENCIÓN La presente invención se refiere a un sistema de computadoras que proporciona la asignación dinámica de memoria para gráficos. El sistema de computadora incluye un controlador de memoria, una memoria del sistema, unificada, y clientes de memoria, cada uno que tiene acceso a la memoria del sistema via el controlador de memoria. Los clientes de memoria pueden incluir una máquina de representación de gráficos, una unidad de procesamiento central (CPU, por sus siglas en inglés) , un procesador de imágenes, un dispositivo de compresión/expansión de datos, un dispositivo de entrada/salida, y un dispositivo de extremo posterior de gráficos. En una modalidad preferida, la máquina de representación y el controlador de memoria se incrementan en un primer circuito integrado (primer IC) y el procesador de imágenes y la compresión/expansión de datos se implementan en un segundo IC. El sistema de computadora proporciona acceso de lectura/escritura a la memoria del sistema, unificada a través del controlador de memoria, para cada uno de los clientes de memoria. Los elementos físicos de traducción se incluyen para la correlación de las direcciones virtuales de las memorias intermedias de los pixeles a ubicaciones de memoria fisica en la memoria del sistema, unificada. Las memorias intermedias de pixeles se asignan dinámicamente como baldosas de la memoria físicamente contigua. Los elementos físicos de traducción, para la correlación de las direcciones virtuales de las memorias intermedias de pixeles a las ubicaciones de la memoria fisica en la memoria del sistema, unificada, se implementa en cada uno de los dispositivos de computación que se incluyen como clientes de memoria en el sistema de computadora. En una modalidad preferida, la memoria del sistema, unificada se implementa usando DRAM (memoria de acceso aleatorio, dinámica) sincrónica. También en la modalidad preferida, las baldosas están comprendidas de 64 kilobytes de memoria físicamente contigua arreglada como 128 filas de 128 pixeles en donde cada pixel es un pixel de 4 bytes. Sin embargo, la presente invención es también adecuada para usar baldosas de otros tamaños. También en la modalidad preferida, las memorias intermedias de pixeles, dinámicamente asignadas están comprendidas de n2 baldosas en donde n es un número entero. El sistema de computadora de la presente invención proporciona ventajas funcionales para la visualización gráfica y procesamiento de imágenes. No hay unidades de memoria, dedicadas en el sistema de computadora de la presente invención además de la memoria del sistema, unificada, por lo tanto, no es necesario transferir los datos desde una unidad de memoria, dedicada a otra cuando un procesador periférico se llama para procesar los datos generados por la CPU o por cualquier otro dispositivo periférico.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La presente invención se ilustra a manera de ejemplo, y no a manera de limitación, en las figuras de los dibujos anexos y en los cuales los números de referencia similares se refieren a elementos similares y en los cuales: La Figura 1 de la técnica anterior es un diagrama de bloques de circuitos de un sistema de computadora tipico, de la técnica anterior que incluye procesadores periféricos y unidades de memoria, dedicadas, asociadas.
La Figura 2A es un diagrama de bloques de circuitos de una arquitectura de computadora de memoria del sistema unificada, de ejemplo de acuerdo con la presente invención.
La Figura 2B es una diagrama de bloques de circuitos, internos de un IC controlador de memoria y representación de gráficos que incluye un controlador de memoria (MC, por sus siglas en inglés) y una máquina de representación de gráficos integrada a la misma.
La Figura 2C es un diagrama de bloques de circuitos internos del IC de controlador de memoria y representación de gráficos en la Figura 2B.
La Figura 3A es una ilustración de una baldosa de ejemplo para la asignación dinámica de las memorias intermedias de pixeles de acuerdo con la presente invención.
La Figura 3B es una ilustración de una memoria intermedia de pixel, de ejemplo comprendida de n** baldosas de acuerdo con la presente invención.
La Figura 3C es un diagrama de bloques de un sistema de traducción de direcciones de acuerdo con la presente invención.
La Figura 4 es un diagrama de bloques de un controlador de memoria de acuerdo con la presente invención.
La Figura 5 es un diagrama de sincronización para las peticiones de los clientes de memoria emitidas a la memoria del sistema unificada de acuerdo con la presente invención.
La Figura 6 es un diagrama de sincronización para los datos de escritura de los clientes de memoria de acuerdo con la presente invención.
La Figura 7 es un diagrama de sincronización para los datos de lectura de los clientes de memoria de acuerdo con la presente invención.
La Figura 8 es un diagrama de sincronización para una escritura de ejemplo a una nueva página realizada por la memoria del sistema, unificada de acuerdo con la presente invención.
La Figura 9 es un diagrama de sincronización para una lectura de ejemplo para una nueva página revisada por la memoria del sistema, unificada de acuerdo con la presente invención.
La Figura 10 muestra los bancos externos del controlador de memoria de acuerdo con la presente invención.
La Figura 11 es un diagrama de flujo para las máquinas del estado de los bancos de acuerdo con la presente invención.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN En la siguiente descripción detallada, se exponen numerosos detalles específicos a fin de proporcionar un entendimiento completo de la presente invención. Sin embargo, será obvio para una persona experta en la técnica que la presente invención se puede practicar sin estos detalles específicos. En otras circunstancias, no se han descrito métodos, procedimientos, componentes y circuitos bien conocidos, en detalle para no oscurecer innecesariamente los aspectos de la invención. Ahora se hará referencia en detalle a las modalidades preferidas de la presence invención, una arquitectura del sistema de computadora que tiene la asignación dinámica de memoria para gráficos, los ejemplos de los cuales se ilustran en los dibujos anexos. Mientras que la invención se describirá en unión con las modalidades preferidas, se entenderá que no se propone que limiten la invención a esas modalidades. De lo contrario, la invención se propone que cubra las alternativas, modificaciones y equivalentes que se pueden incluir dentro del espíritu y alcance de la invención como se define por las reivindicaciones anexas. Además, en la siguiente descripción detallada de la presente invención, se exponen numerosos detalles específicos a fin de proporcionar un entendimiento completo de la presente invención. Sin embargo, será obvio para una persona experta en la técnica que la presente invención se pueda practicar sin estos detalles específicos. En otras circunstancias, no se han descrito en detalle métodos, procedimientos, componentes y circuitos bien conocidos para no oscurecer innecesariamente los aspectos de la presente invención. Con referencia a la Figura 2A, se muestra un sistema 200 de computadora, de acuerdo con la presente invención. El sistema 200 de computadora incluye una memoria 204 de sistema, unificada que se comparte por varios clientes del sistema de memoria que incluyen una CPU 206, una máquina 208 de representación de gráficos, un IC 210 de entrada/salida, un IC 212 de extremo posterior de gráficos, un procesador de imágenes 214, y un controlador 204 de memoria. Con referencia a la Figura 2B, se muestra un sistema 201 de computadora de ejemplo, de acuerdo con la presente invención. El sistema 201 de computadora incluye la memoria 202 del sistema, unificada que se comparte por varios clientes del sistema de memoria que incluye la CPU 206, del IC 210 de entrada/salida, el IC 212 de extremo -posterior de gráficos, un IC 216 de compresión y expansión y procesamiento de imágenes, y un IC 218 controlador de memoria y representación de gráficos. El IC 216 de comprensión y expansión y procesamiento de imágenes incluye el procesador 214 de imágenes y una unidad 215 de compresión y expansión de datos. El IC 218 GRMC incluye la máquina 208 de representación de gráficos (máquina de representación) y el controlador 204 de memoria integrado en la misma. El IC 218 controlador de memoria y representación de gráficos se acopla a la memoria 202 del sistema, unificada via una barra común 225 de datos de memoria con alta banda ancha (HBWMD BARRA COMÚN) . En una modalidad preferida de la presente invención, la HBWMD BARRA COMÚN 225 incluye un multiplexor (SD-MUX) 220, una primera BARRA COMÚN 222 acoplada entre el IC 218 controlador de memoria y de representación de gráficos y el SD-MUX 220, una segunda barra común 224 acoplada entre el SD-MUX 220 y una memoria 202 del sistema, unificada. En la modalidad preferida de la presente invención, la barra común 222 incluye 144 lineas cicladas a 133 MHz y la BARRA COMÚN 224 incluye 288 lineas cicladas a 66 MHz. El SD-MUX 220 desmultiplexa las 144 líneas de la BARRA COMÚN 222, que se ciclan a 133 MHz, para duplicar el número de líneas 288, de la BARRA COMÚN 224, que se ciclan a la mitad de la frecuencia, 66 MHz. La CPU 206 se acopla al IC 218 controlador de memoria y representación de gráficos por una tercera barra 226. En una modalidad preferida de la presente invención, la BARRA COMÚN 226 es de un ancho de 64 bitios y tiene señales cicladas a 100 MHz. El IC 216 de compresión y expansión y procesamiento de imágenes se acopla a la BARRA COMÚN 226, por una tercera BARRA COMÚN 228. En la modalidad preferida de la -presente invención, la BARRA COMÚN 228 es de un ancho de 64 bitios y tiene señales cicladas a 100 MHz. El IC 212 de extremo posterior de gráficos se acopla al IC 218 controlador de memoria y representación de gráficos por una cuarta barra 230. En la modalidad preferida de la presente invención, la BARRA COMÚN 230 es de un ancho de 64 bitios y tiene señales cicladas a 133 MHz. El IC 210 de entrada/salida se acopla al IC 218 controlador de memoria y representación de gráficos por una quinta barra 232. En la modalidad preferida de la presente invención, la BARRA COMÚN 232 es de un ancho de 32 bitios y tiene señales con ciclos a 133 MHz. El IC 210 de entrada/salida de la Figura 2A contiene todas las interfaces de entrada/salidas que incluyen: teclado y ratón, temporizadores de intervalos, serial, paralelo, ic, audio, entrada/salida de video, y Ethernet rápido. El IC 210 de entrada/salida también contiene una interfaz a una barra de expansión PCI de 64 bitios externa, BARRA COMÚN 231, que soporta cinco maestros (dos controladores SCSI y tres ranuras de expansión) . Con referencia a la Figura 2C, se muestra un diagrama de bloques de circuito interno del IC 218 controlador de memoria y representación de gráficos de acuerdo con una modalidad de la presente invención. Como se menciona previamente, la máquina de representación 208 y el controlador de memoria 214 se integran dentro del IC 218 controlador de memoria y representación de gráficos. El IC 218 controlador de memoria y representación de gráficos también incluye una interfaz 234 de CPU/IPCE, y una interfaz 236 de entrada/salida, y una interfaz 232 de GBE . Con referencia a las Figuras 2A y 2B, la interfaz 232 de GBE almacena en memoria intermedia y transfiere los datos de visualización desde la memoria 202 del sistema, unificada al IC 212 de extremo posterior de gráficos en ráfagas de 16 x 32 bytes. La interfaz 232 de GBE almacena en memoria intermedia y transfiere los datos de captura de video desde el IC 212 de extremo posterior de gráficos a la memoria 202 del sistema, unificada en ráfagas de 16 x 32 bytes. La interfaz 232 de GBE emite interrupciones de GBE a la interfaz 234 de CPU/IPCE. La BARRA COMÚN 228, mostrada tanto en la Figura 2A como en la Figura 2B, acopla la interfaz 232 de GBE al IC 212 de extremo posterior de gráficos (Figura 2A) . La interfaz 236 de entrada/salida almacena memoria intermedia y transfiere los datos desde la memoria 202 del sistema, unificada al IC 210 de entrada/salida en ráfagas de 8 x 32 bytes. La interfaz 236 de entrada/salida almacena en memoria intermedia y transfiere los datos desde el IC 210 de entrada/salida a la memoria 202 del sistema como unificada en ráfagas de 8 x 32 bytes. La interfaz 236 de entrada/salida emite las interrupciones del IC de entrada/salida a la interfaz 234 de CPU/IPCE. La BARRA COMÚN 230, mostrada en la Figura 2A y la Figura 2B, acoplan la interfaz 236 de entrada/salida al IC 210 de entrada/salida (Figura 2A) . Una BARRA COMÚN 224, proporciona el acoplamiento entre interfaz 234 de CPU/IPCE y la CPU 206 y el IC 216 de compresión y expansión y procesamiento de imágenes. Con referencia a la Figura 2A, el controlador 214 de memoria es la interfa? entre los clientes del sistema de memoria (CPU 206, máquina de representación 208, IC 210 de entrada/salida, IC 212 de extremo posterior de gráficos, procesador de imágenes 214, y dispositivo 215 de compresión/expansión de datos) y la memoria 202 del sistema, unificada. Como se menciona previamente, el controlador 214 de memoria se acopla la memoria 202 del sistema, unificada vía la BARRA COMÚN 225 de HBWMD que permite la transferencia rápida de grandes cantidades de datos hacia y desde la memoria 202 del sistema, unificada. Los clientes de memoria hacen peticiones de lectura y escritura a la memoria 202 del sistema, unificada a través del controlador 214 de memoria. El controlador 214 de memoria convierte las peticiones en secuencias de control apropiadas y pasa los datos entre los clientes de memoria y la memoria 202 del sistema, unificada. En la modalidad preferida de la presente invención, el controlador de memoria 214 contiene dos estructuras de tubería, una para las órdenes y otra para los datos. La tubería de peticiones tiene tres etapas, arbitraje, descodificación y máquina de emisión/estado. La tubería de datos tiene solamente una etapa, ECC. Las peticiones de datos fluyen a través de las tuberías de la siguiente manera. Los clientes colocan sus peticiones en una cola. El circuito lógico de arbitraje estima todas las peticiones en la parte superior de las colas de los clientes y decide qué petición empezará a través de la tubería. Desde la tapa de arbitraje, la petición fluye a la etapa de descodificación. Durante la etapa de descodificación, la información acerca de la petición se colecta y pasa hasta una etapa de la máquina de emisión/estado. Con referencia a la Figura 2A, la máquina 208 de representación es un coprocesador de gráficos de 2-D y 3-D que puede acelerar el barrido. En una modalidad preferida de la presente invención, la máquina 208 de representación también se cicla a 66 MHz y opera sincrónicamente a la memoria 202 del sistema, unificada. La máquina 208 de representación recibe los parámetros de representación de la CPU 206 y da directamente a las memorias intermedias de estructura almacenadas en la memoria 202 del sistema, unificada (Figura 2A) . La máquina 208 de representación emite peticiones de acceso a la memoria al controlador 214 de memoria. Puesto que la máquina 208 de representación comparte la memoria 202 del sistema, unificada con otros clientes de memoria, el desempeño de la máquina de representación 208 variará como una función de la carga en la memoria 202 del sistema, unificada. La máquina 208 de representación se divide lógicamente en cuatro unidades principales, funcionales: un interfaz huésped, una tubería de pixeles, una máquina de transferencia de memoria, y la unidad de petición de memoria. La interfaz huésped controla la lectura y escritura desde el huésped hacia los registradores de la interfaz de programación. La tubería de pixeles implementa un barrido y la tubería de representación a una memoria intermedia de cuadro. La máquina de preferencia de memoria realiza las limpiezas alineadas de bytes de banda ancha de memoria y copia tanto en las memorias intermedias lineales y las memorias intermedias de cuadro. La unidad de petición de memoria arbitra entre las peticiones de la tubería de pixeles y las colas en las peticiones de memoria que se limiten al controlador 214 de memoria. El sistema 200 de computadora incluye la asignación dinámica de memoria de las memorias intermedias de pixeles, virtuales en la memoria 202 del sistema, unificada. Las memorias intermedias de pixeles incluyen memorias intermedias de cuadro, mapas de textura, mapas de video, memorias intermedias de imágenes, etc. Cada memoria intermedia de pixel puede incluir múltiples memorias intermedias de color, una memoria intermedia' de profundidad, y una memoria intermedia de esténcil. En la presente invención, las memorias intermedias de pixeles se asignan en unidades de memoria contigua llamadas baldosas y se proporcionan memorias intermedias de traducción de dirección para la asignación dinámica de las memorias intermedias de pixeles . Con referencia a la Figura 3A, se muestra una ilustración de una baldosa 300 de ejemplo para la asignación dinámica de las memorias intermedias de pixeles de acuerdo con la presente invención. En una modalidad preferida de la presente invención, cada baldosa 300 incluye 64 kilobytes de memoria físicamente contigua. Un tamaño de baldosa de 64 kilobytes puede estar comprendido de 128 x 128 pixeles para pixeles de 34 bitios, pixeles de 256 x 128 para pixeles de 16 bitios, o para pixeles de 512 x 128 de pixeles de 8 bitios. En la presente invención, las baldosas empiezan en direcciones alineadas de 64 kilobytes. Se puede asignar un número entero de baldosas para cada memoria intermedia de pixeles por ejemplo, una memoria intermedia de pixel 200 x 200 y un memoria intermedia de pixel 256 x 256 requerirán ambas cuatro baldosas de pixel (128 x 128) . Con referencia a la Figura 3B, se muestra en la ilustración de la memoria 302 de pixel de ejemplo de acuerdo con la presente invención. En el sistema 200 de computadora de la presente invención, los elementos físicos de traducción correlacionan o representan en mapas direcciones virtuales de las memorias intermedias 302 de pixel a ubicaciones de memoria física en la memoria 202 del sistema, unificada. Cada una de las unidades de computación del sistema 200 de computadora (IC, 212, de compresión y expansión y procesamiento de imágenes, Cl 212 posterior, de gráficos, el IC 210 de entrada/salida, y la máquina de representación 208) incluye los elementos físicos de traducción para la correlación de las direcciones virtuales de las memorias intermedias 302 de pixel a ubicaciones de memoria física en la memoria 202 del sistema, unificada. Cada memoria intermedia 302 de pixel se divide en n** baldosas 300, en donde n es un número entero. En una modalidad preferida de la presente invención, n = 4. La máquina de representación 208 soporta una memoria intermedia de traducción (TLB, por sus siglas en inglés) de dirección de la memoria intermedia de cuadro para traducir las direcciones de la memoria intermedia de cuadro (x, y) en direcciones de memoria física. Esta TLB se carga por la CPU 206 con las direcciones de memoria física, base de las baldosas que componen una memoria intermedia de color ni la memoria intermedia de esténcil-profundidad y en una memoria intermedia de cuadro. En una modalidad preferida de la presente invención, la memoria intermedia de cuadro TLB tiene suficientes entradas para retener las direcciones de memoria física, base, de baldosa de una memoria intermedia de color de pixel de 2048 x 2048 y una memoria intermedia de esténcil-profundidad de pixel de 2048 x 2048. Por lo tanto, la TLB tiene 256 entradas para las baldosas de la memoria intermedia de color y 256 entradas para las baldosas de la memoria intermedia de esténcil-profundidad. Las baldosas proporcionan una unidad conveniente para la asignación de memoria. Al permitir que las baldosas se dispersen a través de la memoria, el embaldosado hace la cantidad de memoria que debe ser manejable contiguamente asignada. Adicionalmente, el embaldosado proporciona un medio para reducir la cantidad de memoria del sistema consumida por los rollos intermedios de cuadro. La representación a baldosas que no contienen ningún pixel pertinente para la visualización, baldosas invisibles, pueden ser fácilmente recortado y por lo tanto la memoria no necesita ser asignada a estas baldosas. Por ejemplo, una memoria intermedia de cuadro, virtual de 1024 x 1024 que consiste de las memorias intermedias de RGBA frontal y trasera y una memoria intermedia de profundidad consumirán 12Mb de nivel de memoria si está completamente residente. Sin embargo, si cada memoria intermedia de 1024 x 104 se dividió en 64 (128 x 128) baldosas de las cuales solo cuatro baldosas contuvieron pixeles no ocluidos, solo la memoria para aquellas baldosas visibles podría necesitar ser asignadas. En este caso, solamente se consumirían 3 Mb. En la presente invención, los clientes del sistema de memoria (por ejemplo, la CPU 206, la máquina de representación 208, el IC 210 de entrada/salida, el IC 212 de extremo posterior de gráficos, el procesador 214 de máquinas, y el dispositivo de compresión/expansión de datos 215) comparte la memoria 202 del sistema, unificada. Puesto que cada cliente del sistema de memoria tiene acceso a la memoria compartida por cada uno de los otros clientes del sistema de memoria, no hay necesidad para transferir datos desde una unidad de memoria dedicada a otra. Por ejemplo, los datos se pueden recibir por el IC 210 de entrada/salida, se descomprimen (o expanden) por el dispositivo 215 de compresión/expansión de datos, y se almacenan en la memoria 202 del sistema, unificada. Estos datos luego se pueden acceder por la CPU 206, la máquina 208 de representación, el IC 210 de entrada/salida, el IC 212 de extremo posterior de gráficos, o el procesador 214 de imágenes. Como un segundo ejemplo, la CPU 206, la máquina de representación 208, el IC 210 de entrada/salida, el IC 212 de extremo posterior de gráficos, o el procesador 214 de imágenes pueden usar los datos generados por la CPU 206, la máquina 208 de representación, el IC 210 de entrada/salida, el IC 212 de extremo posterior de gráficos, o el procesador 214 de imágenes. Cada una de las unidades de computación (CPU 206, IC 210 de entrada/salida, el IC 212 de extremo posterior de gráficos, y el IC 216 de compresión y expansión y procesamiento de imágenes, el IC 218 controlador de memoria y representación de gráficos, y el dispositivo 215 de compresión/expansión de datos) tienen elementos físicos de traducción para determinar las direcciones físicas de las memorias intermedias de pixel como se discute posteriormente. Hay numerosas aplicaciones de video para las cuales el sistema 200 de computadora de la presente invención proporciona ventajas funcionales sobre las arquitecturas del sistema de computadora de la técnica anterior. Estas aplicaciones varían desde video conferencia a video edición. Hay variación significante en el procesamiento requerido para las varias aplicaciones, pero son comunes unos pocos pasos de procesamiento para todas las aplicaciones. Captura, filtración, puesta en escala, compresión, mezclado, y visualización. En la operación del sistema 200 de computadora, el IC 210 de entrada/salida puede introducir una corriente comprimida de datos de video que se puede almacenar en la memoria 202 del sistema, unificada. El IC 210 de entrada/salida puede tener acceso a los datos comprimidos almacenados en la memoria 220 del sistema, unificada, vía una ruta a través del IC 218 controlador de memoria y representación de gráficos. El IC 210 de entrada/salida luego puede descomprimir los datos a los que se tiene acceso y almacenar los datos descomprimidos en la memoria 202 del sistema, unificada. Los datos de imagen almacenados luego se pueden usar, por ejemplo, como un mapa de textura por la máquina 208 de representación para correlacionar la imagen almacenada en otra imagen. La imagen resultante luego se puede almacenar en una memoria intermedia de pixel que se puede asignar dinámicamente en la memoria 202 del sistema, unificada. Si la imagen resultante se almacena en una memoria intermedia de cuadro, asignada dinámicamente en la memoria 202 del sistema, unificada, entonces la imagen resultante se puede visualizar por el IC 212 de extremo posterior de gráficos o la imagen se puede capturar al escribir la imagen de regreso a otra memoria intermedia de pixel que se ha asignado dinámicamente en la memoria 202 del sistema, unificada. Puesto que no hay necesidad de transferir los datos desde una unidad de memoria, dedicada a otra en el sistema 200 de computadora, se incrementa la funcionalidad. En la modalidad preferida de la presente invención, la memoria 202 del sistema, unificada en la Figura 2A se implementa usando la DRAM sincrónica (SDRAM) que se tiene acceso vía una barra común de datos de memoria ancha de 256 bitios ciclada a 66 MHz. Una SDRAM está constituida de filas y columnas de celdas de memoria. Una fila de celdas de memoria se refiere como una página. Tiene acceso a una celda de memoria con una dirección de fila y una dirección de columna. Cuando se tiene acceso a una fila, la fila completa se coloca en memorias cerrojos, de modo que los accesos subsecuentes a esa fila solo requieren la dirección de la columna. Los accesos a la primera fila se refieren como accesos a la página. En una modalidad preferida de la presente invención, la memoria 202 del sistema, unificada proporciona un ancho de banda de datos máxima de 2.133 Gb/s. También, en una modalidad preferida de la presente invención, la memoria 202 del sistema, unificada está constituida de 8 ranuras. Cada ranura puede tener una SDRAM DIMM. Una SDRAM DIMM se construye de componentes de SDRAM de 1M x 16 ó 4M x 16 y se multiplican en el frente solo o el frente y el lado posterior del DIMM. Se requieren dos DIMM para hacer un banco de SDRAM externo. Los componentes de SDRAM de 1M x 16 construyen un banco externo de 32 Mbytes, mientras que los componentes de SDRAM de 4M x 16 construyen un banco externo de 128 Mbytes. La memoria 202 del sistema, unificada puede variar en tamaño desde 32 Mbytes a 1 Gbyte. La Figura 3C muestra un diagrama de bloques de un sistema de traducción de dirección de acuerdo con la presente invención. La Figura 4 muestra un diagrama de bloques del controlador 204 de memoria de la presente invención . Una interfaz del cliente de memoria contiene las señales listadas en la Tabla 1, a continuación: Tabla 1: Señales de la interfaz del cliente de memoria Con referencia a la Figura 5, se muestra un diagrama de sincronización para las peticiones del cliente de memoria. Un cliente de memoria hace una petición al controlador 204 de memoria al sostener clientreq. valid mientras se ajustan las líneas clientreq. adr, clientreq.msg, clientreq.cmd y clientreq. ecc a los valores apropiados. Si se aloja en la cola, la petición se pone con cerrojo en la cola del cliente de memoria. Solo dos de los clientes de memoria, la máquina 208 de representación y el IC 210 de entrada/salida, usan el clientreq.msg. El mensaje especifica que el subsistema dentro del IC 210 DE entrada/salida o la máquina 208 de representación hacen la petición. Cuando ocurre un error, este mensaje se salva junto con otra información pertinente para ayudar en el proceso de corrección. Para la máquina 208 de representación, el mensaje se pasa a través de la tubería de petición y se regresa con otra información pertinente para ayudar en el proceso de corrección. Para la máquina 208 de representación, el mensaje se pasa a través de la tubería de petición y se regresa con la señal clientreq. wrrdy para a petición de escritura o con la señal clientreq. rdrdy para una petición de lectura. La máquina 208 de representación usa la información contenida en el mensaje para determinar qué cola de .la máquina 208 de representación tiene acceso. Con referencia a la Figura 6, se muestra un diagrama de sincronización para los datos de escritura del cliente de memoria. Los datos para una petición de escritura no se aseguran con cerrojo con la dirección y petición. En cambio, los datos, máscara y mensaje se aseguran en memoria cerrojo cuando el controlador 204 de memoria sostiene el clientreq. wrrdy indicando que la petición ha alcanzado el estado de descodificación de la tubería de petición. Debido a que las colas del cliente de memoria están en la parte frontal de la tubería de petición, no hay una relación simple entre la afirmación clientreq. gnt y clientreq. rrdy. La clientreq.msg es sólo válida para la máquina 208 de representación y el IC 210 de entrada/salida. El controlador 204 de memoria sostiene o afirma la señal clientreq. oe al menos un ciclo antes de la afirmación de clientreq. rrdy. la clientreq. oe se asegura con cerrojo localmente con el cliente de memoria y se usa para encender los controladores de la barra común de datos de memoria del cliente de memoria. Con referencia en la Figura 7, se muestra un diagrama de sincronización para los datos de lectura del cliente de memoria. Los datos de lectura se envían al cliente de memoria sobre la barra común de memdata2client_out . Cuando se sostiene o afirma clientres .rdrdy, los datos y el mensaje son válidos. Una interfaz del cliente de memoria contiene las señales listadas en la Tabla 2, a continuación.
Tabla 2: Señales de la interfaz de memoria Los datos y la máscara se ponen en memoria cerrojo en la tubería de datos y fluyen hacia la memoria 202 del sistema, unificada en memmask out y memdata2mem_out . A partir de los datos y la máscara, se generan el ECC y la máscara ECC y se enví a la memoria 202 del sistema, unificada a través de eccmask y ecc_out. La señal memdataoe se usa para encender los controladores de la barra común de memoria. Los datos ECC de la memoria 202 del sistema unificada entran en las barras comunes memdata2client_in y ecc_in. El ECC se usa para determinar si los datos entrantes son correctos. Si hay un error de un bitio en los datos, el error se corrige, y los datos corregidos se envían al cliente de memoria. Si hay más de un bitio de error, la CPU 206 se interrumpe, y se regresan los datos no corregidos al cliente de memoria. La Ras_n, cas_n, we_n y cs_n son señales de control para la memoria 202 del sistema, unificada. Con referencia a la Figura 8, se muestra el diagrama de sincronización para una escritura de ejemplo a una nueva página realizada por la memoria 202 del sistema, unificada. Con referencia en la Figura 9, se muestra un diagrama de sincronización para una lectura de ejemplo a una nueva página realizada por la memoria 202 del sistema, unificad . Una operación de lectura o escritura a la misma página de SDRAM en la misma como la operación mostrada en las Figuras 8 y 9, ' excepto que una misma operación de página no necesita los ciclo de precarga y activación. Una tubería de petición es el centro de control para el controlador 204 de memoria. Las peticiones del cliente de memoria se colocan en un extremo de la tubería y salen del otro lado como órdenes de memoria. Las colas o líneas de espera del cliente de memoria están en el frente de la tubería, seguidas por el arbitraje, luego la descodificación, y finalmente la máquina de emisión/estado. Si hay alojamiento en su línea de espera, un cliente de memoria puede colocar una petición en el mismo. El circuito lógico de arbitraje estima todas las peticiones en la parte superior de las colas o listas de espera del cliente de memoria y decide qué petición empieza a través de la tubería de petición. A partir de la etapa de arbitraje, la petición fluye hacia la etapa de descodificación. Durante la etapa de descodificación, la información acerca de la petición se colecta y pasa sobre la etapa de la máquina de emisión/estado. En base a esta información, una máquina de estado determina la secuencia apropiada de órdenes para la memoria 202 del sistema, unificada. Esta última porción de la etapa de emisión descodifica el estado de la máquina de estado en señales de control que se aseguran en memoria de cerrojo y luego se envían a través de la memoria '202 del sistema, unificada. Una petición puede asentarse en la etapa de emisión para más de un ciclo. Mientras que una petición se asienta en la tapa de la máquina de emisión/estado, el resto de la tubería de petición se para. Cada etapa de la tubería de petición se discute en la presente. Todos los clientes de memoria tienen colas o listas de espera, excepto para la renovación. Una petición de renovación se garantiza que se retire antes que otra petición se emita, de modo que no es necesaria una cola. Las cinco colas del cliente de memoria son estructuras de dos puertos, simples con los clientes de memoria en el lado de escritura y el circuito lógico de arbitraje en el lado de lectura. Si hay espacio disponible en una cola del cliente de memoria, indicada por la afirmación de clientres .gnt, un cliente de memoria puede colocar una petición en su cola o lista de espera. Una' petición del cliente de memoria consiste de una dirección, una orden (lectura, escritura o lectura con modificación por escritura), un mensaje, un ECC válido y una indicación válida de petición. Si se sostienen o afirman tanto clientreq. valid y clientres . gnt, la petición se pone en memoria de cerrojo en la cola del cliente de memoria. Si la tubería no está parada, el circuito lógico de arbitraje estima todas las peticiones en la parte superior de las colas o listas de espera del cliente de memoria y determina qué petición sale y pasa a la etapa de descodificación de las peticiones en la parte superior de las colas o listas de espera del cliente de memoria y determina qué petición sale y pasa a la etapa de descodificación de la tubería de petición. Debido a que hay una cola de petición entre el cliente de memoria y el arbitro, la señal clientres .gnt no indica que se ha retirado la petición. La petición aún necesita ir a través del proceso de arbitraje. Para ponerlo de otra manera, el cliente A de memoria puede recibir la señal clientres . gnt antes que el cliente B de memoria, pero si el cliente B tiene una prioridad superior, su petición puede retirarse antes de la petición del cliente A de memoria.
Arbitro Como se señala anteriormente, el arbitro determina qué petición del cliente de memoria pasa a la etapa de descodificación de la tubería de petición. Este proceso de decisión tiene dos pasos. El primer paso es determinar si la ranura de arbitraje para el cliente de memoria corriente está por arriba o no. Una ranura de arbitraje es una serie de peticiones del mismo cliente de memoria. El número y tipo de peticiones permitidas en una ranura de arbitraje varía. La Tabla 3, a continuación, lista los que cada cliente de memoria puede hacer en una ranura de arbitraje . Cliente Posibles operaciones Extremo < = 16 lectura de palabras de memoria sin posterior de cruzamiento de páginas gráficos < = 16 escritura de palabras de memoria sin cruzamiento de página IPCE IC < = 8 lectura de palabras de memorias con cruzamiento de 1 página < = 8 escritura de palabras de memoria con cruzamiento de 1 página 1 Operación de lectura con modificación por escritura máquina de < = 8 lectura de palabras de memoria sin representad cruzamiento de páginas ón CPU, GRMC < = 8 escritura de palabras de memoria sin cruzamiento de página 1 Operación de lectura con modificación por escritura RENOVACIÓN renovar 2 filas Tabla 3: Peticiones permitidas en la ranura de arbitraje En base a un estado de la ranura de arbitraje corriente y la próxima petición del propietario de la ranura corriente, el arbitro determina si la ranura de arbitraje debe finalizar o no. Si no, la petición del cliente de memoria quien posee la ranura de arbitraje corriente se pasa a la etapa de descodificación. Si la ranura de arbitraje corriente se termina, el arbitro usa los resultados de un algoritmo de arbitraje para decidir qué petición pasa a la etapa de descodificación. El algoritmo de arbitraje decide qué petición pasa a la etapa de descodificación. El algoritmo de arbitraje asegura que el IC 212 de extremo posterior de gráficos obtenga 1/2 de las ranuras de arbitraje, el IC 210 de entrada/salida obtenga 1/4, y el IC 216 de compresión y expansión y procesamiento de imágenes obtenga 1/8, la máquina 208 de representación obtenga 1/16, la CPU 206 obtenga 1/32, y la renovación obtenga 1/64. La predicción del ancho de banda promedio para cada cliente de memoria es difícil, todo pero se puede calcular la frecuencia de ranura en el peor caso por cliente de memoria. El primer caso es determinar el número máximo de ciclos que cada cliente de memoria puede usar durante una ranura de arbitraje. La Tabla 4, a continuación, muestra el número de ciclos asociados con cada tipo de operación. Con referencia a la Tabla 4, a continuación, "P", se refiere a precarga, "X" se refiere a ciclo muerto, "A", se refiere a activar, "RO" se refiere a "leer palabra "0", "WO" se refiere a "escribir palabra 0", y "Ref" se refiere a "renovación" .
Tabla 4 : Ciclos máximos para una operación de memoria La Tabla 5, a continuación, se refiere al número máximo de ciclos para cada uno de los clientes de memoria.
Tabla 5: No. máximo de ciclos por ranura Finalmente, las ranuras por segundo para cada cliente de memoria se pueden calcular. Si todos los clientes de memoria están pidiendo todo el tiempo, cada cliente de memoria obtendrá un turno después de 64 ranuras. Esto se refiere como una "revolución". En esa revolución, el extremo posterior de gráficos obtiene 32 de las 64 ranuras, el IC 210 de entrada/salida obtiene 16 de las 64 ranuras, etc., de modo que una revolución toma 32 *20 + 18 + 4 12 + 2 12 + 14 = 1062 ciclos .
Tabla 6: Frecuencia de ranura para cada cliente Circuito lógico de descodificación El circuito lógico de descodificación recibe peticiones del arbitro. En base al estado mantenido de las peticiones previas y la información contenida en la petición corriente, el circuito lógico de descodificación determina qué banco de memoria seleccionar, cual de las cuatro máquinas de estado en la próxima etapa manejará la petición, y sí o no la petición corriente está en la misma página como la petición previa. Esta información se pasa a la etapa de la máquina de emisión/estado. La memoria 202 del sistema, unificada está constituida de 8 ranuras. Cada ranura puede tener una SDRAM DIMM. Una SDRAM DIMM se construye de componentes de SDRAM de 1M x 16 ó 4M x 16 y se multiplican el frente solo o el frente el lado trasero de la DIMM. Se requieren dos DIMM para hacer un banco de SDRAM externo. Los componentes de SDRAM de 1M x 16 construyen un" banco externo de 32 Mbytes, mientras que los componentes de SDRAM de 4M x 16 construyen un banco externo de 128 Mbytes. El sistema de memoria puede variar en tamaño desde 32 Mbytes a 1 Gbyte. Cada componente de SDRAM tiene dos bancos internos, por lo tanto dos posibles páginas abiertas. El número máximo de bancos de los bancos externos es 8 y el número máximo de bancos internos es 16. El controlador de memoria 204 solo soporta 4 páginas abiertas al mismo tiempo. Esta emisión se discutirá en detalle posteriormente en esta sección. El circuito lógico de descodificación se explica a continuación en más detalle. Durante la iniciación, el programa de aplicación prueba la memoria para determinar cuántos bancos de memoria están presentes y el tamaño de cada banco. En base a esta información, el programa de aplicación programa los 8 registradores de control de banco. Cada registrador de control de banco (referirse a la sección de registrador) tiene un bitio que indica el tamaño del banco y 5 bitios para los bitios de dirección superiores de ese banco. El programa de aplicación debe colocar los bancos externos de 64 Mbitios en el intervalo de direcciones inferiores seguido por los bancos externos 16 Mbitios. Esto es para prevenir separaciones en la memoria. El circuito lógico de descodificación compara los bitios de la dirección superior de la petición entrante a los 8 registradores de control de banco para determinar cuál banco externo seleccionar. El número de bitios que se comparan es dependiente del tamaño del banco. Por ejemplo, si el tamaño del banco es 64 Mbitios, el circuito lógico de descodificación compara los bitios 24:22 de la dirección de petición a los bitios 4:2 del registrador de control de banco. Si hay una igualación, ese banco se selecciona. Cada banco externo tiene una selección separada de pastilla. Si una dirección entrante se iguala a más de un registrador de control del banco, se selecciona el banco con el número más bajo. Si una dirección entrante no iguala cualquier de los registradores de control de banco, ocurre un error de dirección de la memoria. Cuando ocurre un error, se captura la información pertinente acerca de la petición en los registradores de error y el procesador se interrumpe, si se habilita la interrupción del controlador 204 de memoria. La petición que provoca el error se envía a la próxima etapa en la tubería y se procesa igual que una petición normal, pero el controlador 204 de memoria desafirma o no sostiene todas las selecciones de banco externo, de modo que no ocurre realmente la operación de memoria. La desarfimación de las selecciones de los bancos externos también se hace cuando el bitio 6 del mensaje de la máquina 208 de representación se ajusta. La máquina 208 de representación ajusta este bitio cuando se genera una petición usando una entrada de TLB inválida. Con referencia a la Figura 10, aunque el controlador 204 de memoria puede manejar cualquier configuración de banco, externa, física, se recomienda que el banco 0 externo siempre esté relleno y que los bancos externos se coloque en el orden y densidad decreciente (por ejemplo, un banco externo de 64 Mbitios en el banco 0 y un banco externo de 16 Mbitios en el banco 2) . El párrafo previo describe cómo el circuito lógico de descodificación determina cuál banco externo seleccionar. Este párrafo describe el método para determinar los cruzamientos de página y cuál máquina de estado de máquina usar en la próxima etapa de la tubería. Las direcciones de fila, junto con los bitios de banco interno y externo para las peticiones previas, se mantienen en un conjunto de registradores que se refieren como los registradores de fila. Cada registrador de fila corresponde a una máquina de estado de banco. Hay cuatro registradores de fila (por lo tanto, cuatro máquinas de estado de banco) , de modo que el circuito lógico de descodificación puede mantener la pista de hasta cuatro páginas abiertas. El circuito lógico de descodificación compara los bitios de banco interno/externo de la nueva petición con los cuatro registradores de fila. Si hay una igualación, entonces se selecciona la máquina de estado de banco que corresponde a aquella del registrador de fila. Si la nueva petición no se iguala o no iguala a cualquiera de los registradores de fila, se selecciona uno de los registradores de fila, y se actualiza el registrador con la nueva información de petición. Si los bitios de bando interno/externo igualan uno de los registradores de fila y los bitios de fila de la nueva petición igualan los bitios de fila en ese registrador, entonces la petición está en la misma página de otra manera no está .
Máquinas de estado y circuito lógico de emisión El circuito lógico de descodificación pasa la petición junto con las elecciones del banco externo, la selección de la máquina de estado y la misma información de página a la etapa de máquina de emisión/estado. La máquina de estado de banco, seleccionada ordena en secuencia a través de los estados apropiados, mientras que el circuito lógico de emisión descodifica el estado de la máquina de estado de banco en órdenes que se envían a las SDRAM DIMM. Además de las cuatro máquinas de estado de banco, hay una máquina de estado dedicada a las operaciones de la renovación e iniciación. La máquina de estado de iniciación/renovación ordena en secuencia a través de los estados especiales para la iniciación y renovación mientras que las cuatro máquinas de estado de banco se fuerzan a un estado desocupado. Las máquinas de estado de banco y la máquina de estado de iniciación/renovación se discuten en más detalle en las siguientes secciones.
Máquinas de estado de banco Cuatro máquinas de estado de banco operan independientemente, sujetas solo a conflictos para el acceso al control, dirección y señales de datos. Las máquinas de estado de banco se ajustan por omisión a la operación del modo de página. Esto es, las órdenes de autoprecarga no se usan, y el banco de SDRAM debe ser cargado explícitamente cuando haya una referencia aleatoria del modo de no página. El estado de descodificación pasa la petición junto con la información de la página a la máquina de estado seleccionada que la orden en secuencias a través de los estados apropiados. En ciertos estados, los te porizadores de intervalo se declara que inhiben a la máquina de estado de la base al próximo estado hasta que se han satisfecho los requerimientos mínimos de intervalo de SDRAM. Las máquinas de estado de banco operan en una petición al mismo tiempo. Es decir, una secuencia de peticiones a través de cualquiera de las fases de precarga y activación, requeridas, y luego una fase de lectura o escritura, punto en el cual se considera terminada y se inicia la próxima petición. Finalmente, el estado de las cuatro máquinas de estado de banco se descodifica por el circuito lógico de emisión que genera las señales de control de SDRAM.
Hay varios parámetros de SDRAM que las máquinas de estado deben obedecer. Estos parámetros varían ligeramente de vendedor a vendedor, pero para simplificar las máquinas de estado, los parámetros más comunes se eligieron y se codificaron permanentemente en los temporizadores de intervalo. Cualquier SDRAM que no es compatible con los parámetros listados en la siguiente tabla no se soporta. Tr2rp y Tr2w son parámetros de sincronización adicionales que definen explícitamente en intervalo entre las órdenes de lectura, escritura y precarga, sucesivas. En sus parámetros aseguran que las órdenes sucesivas no provoquen conflictos en las señales de datos. Mientras que estos parámetros se deben derivar internamente por un secuenciador de máquina de estado, se hace explícito simplificar las máquinas de estado y usar el mismo paradigma de temporizador como los parámetros de SDRAM.
Tabla 7: Parámetros de SDRAM Con referencia a la Tabla 7, anterior, los bancos A y B son los mismos bancos externos mientras que el banco C está en un banco externo diferente. Con referencia a la Figura 11, se muestra un diagrama de flujo para las máquinas de estado de banco. Como se muestra en la Figura 11, Trp, Trrd, y Trcd se dan fuerza por el diseño. Los parámetros Trc, Tras, Tr2rp y Tr2w tienen un temporizador para cada una de las cuatro máquinas de estado de banco. Los temporizadores Tr2rp y Tr2w son comunes a todas las cuatro máquinas de estado de banco, debido a que se usan para prevenir conflictos en las líneas de datos compartidos . La máquina de estado de iniciación/renovación tiene dos funciones, la iniciación y renovación. El procedimiento de iniciación se discute primero, seguido por la renovación. Después de un reajuste, la máquina de estado de iniciación/renovación se ordena en serie a través del procedimiento de iniciación de SDRAM, que es una precarga al total de los bancos, seguido por un ajuste de modo. La etapa de emisión descodifica el estado de la máquina de estado de iniciación/renovación en órdenes que se envían a la SDRAM. Después de los programas de orden de ajuste del modo, el ajuste del modo de SDRAM registra a una latencia CAS de 2, longitud de ráfaga de 1 y un tipo de operación secuencial . La SDRAM requiere que ocurran 4096 ciclos de renovación cada 64 ms . A fin de cumplir con este requerimiento, hay un cliente de memoria de renovación con un temporizador. El temporizador envía una señal cada 27 microsegundos que provoca que el cliente de memoria de renovación haga una petición al arbitro. El arbitro trata la renovación justo igualmente como todos los otros clientes de memoria. Cuando el arbitro determina que el tiempo para la ranura de renovación a empezado, el arbitro pasa la petición de renovación a la etapa de descodificación. La etapa de descodificación invalida todos los registradores de filas y pasa la petición en la máquina de estado/etapa de emisión. Cuando una máquina de estado de banco parece que es una petición de renovación, va a su estado desocupado. La máquina de estado de iniciación/renovación se ordena en serie a través del procedimiento de renovación que es una precarga a todos los bancos seguido por dos ciclos de renovación. Una orden de renovación pone a la SDRAM en un modo de renovación automático. Un contador de dirección, interno al dispositivo, incrementa la dirección de palabra y banco durante el ciclo de renovación. Después de un ciclo de renovación, la SDRAM está en estado desocupado, lo que significa que todas las páginas están cerradas. Esto es porque es importante que las máquinas de estado de banco se fuercen a un estado desocupado y los registradores de filas se invaliden durante una petición de renovación. La máquina de estado de iniciación/renovación es muy similar en su estructura a las máquinas de estado de banco y tiene temporizadores para dar fuerza al" parámetro SDRAM. Un temporizador Trc es usado para dar fuerza a el requerimientos Trc entre los ciclos de renovación, y las salidas de los temporizadores trans banco se usan para asegurar que la orden "precargar todo" no viole tras para cualquiera de los bancos activos.
Tuberia de datos : Las funciones principales de la tubería de datos son para: (1) mover los datos entre un cliente de memoria y la memoria 202 del sistema, unificada, (2) realizar las operaciones ECC y (3) combinar el nuevo byte de un cliente de memoria con los datos viejos de la memoria durante una operación de lectura con modificación de escritura. Cada una de estas funciones se describen posteriormente: Flujo de datos: Con referencia a la Figura 4, la tubería de datos tiene una etapa que está en el paso de fijación con la última etapa de la tubería de petición. Cuando una petición de escritura alcanza la etapa de descodificación, la tubería de petición sostiene o afirma clientres .wrrdy . La señal clientres .wrrdy indica al cliente de memoria que los datos en la barra común Memdata2mem_m se han puesto en memoria de cerrojo en la etapa de ECC de la tubería de datos. Los datos se mantienen en la etapa de ECC y fluyen fuera hacia la memoria 202 del sistema, unificada hasta que la petición se retira en la tubería de petición. Los datos de lectura entrantes se ponen en memoria de cerrojo en la tubería de datos, fluyen a través del circuito lógico de corrección de ECC, y luego se ponen en memoria del cerrojo claramente antes de ir a la barra común Memdata2cl?ent_out . La tubería de petición conoce cuantos ciclos toma la memoria 202 del sistema, unificada para regresar los datos de respuesta de lectura. Cuando los datos de respuesta de lectura están en la barra común Memdata2cl?ent_out, la tubería de petición sostiene o afirma clientres . rdrdy .
La modalidad preferida de la presente invención, una arquitectura de sistema de computadora que caracteriza la asignación dinámica de memoria para gráficos, se describe de esta manera. Mientras que la presente invención se ha descrito en modalidades particulares, se debe apreciar que la presente invención no se debe construir como limitante por estas modalidades, más bien se debe construir de acuerdo con las reivindicaciones anexas.
Se hace constar que con relación a esta fecha, el mejor método conocido por la solicitante para llevar a la práctica la presente invención, es el que resulta claro a partir de la presente descripción de la invención.
Habiéndose descrito la invención como antecede se reclama como propiedad lo contenido en las siguientes :

Claims (12)

REIVINDICACIONES
1. Un sistema de computadora, caracterizado porque comprende: un controlador de memoria; una máquina de representación de gráficos acoplada al controlador de memoria; una CPU acoplada al controlador de memoria; un procesador de imágenes acoplado al controlador de memoria; un dispositivo de compresión/expansión de datos acoplado al controlador de memoria; un dispositivo de entrada/salida acoplado al controlador de memoria; un dispositivo posterior de gráficos acoplado al controlador de memoria; una memoria del sistema, acoplada al controlador de memoria vía una barra común de datos de alta banda ancha, en la memoria del sistema que proporciona acceso de lectura/escritura, a través del controlador de memoria, para clientes de memoria que incluyen la CPU, el dispositivo posterior de gráficos, el procesador de imágenes, el dispositivo de compresión/expansión de datos, la máquina de representación, y el controlador de memoria, en donde ei controlador de memoria es la interfaz entre los clientes de memoria y la memoria del sistema; y elementos físicos de traducción para correlacionar las direcciones virtuales de las memorias intermedias de pixeles a la ubicaciones de memoria física en la memoria del sistema, en donde las memorias intermedias de pixeles se asignan dinámicamente como baldosas de memoria físicamente contigua.
2. El sistema de computadora de conformidad con la reivindicación 1, caracterizado porque la máquina de representación y el controlador de memoria se implementan en un primer IC (circuito integrado) o en donde la máquina de representación y el controlador de memoria se incrementan en un primer IC y el procesador de imágenes y el dispositivo de compresión/expansión de datos se implementan en un segundo IC.
3. Un sistema de computadora, caracterizado porque comprende: una máquina de representación de gráficos y un controlador de memoria implementados en un primer IC; una CPU (unidad de procesamiento central) acoplada al primer IC; un procesador de imágenes acoplado al primer IC; un dispositivo de compresión/expansión de datos acoplado al primer IC; : un dispositivo de entrada/salida acoplado al primer IC; un dispositivo posterior de gráficos acoplado al primer IC; una memoria del sistema, acoplada al primer IC vía una barra común de datos de alta banda ancha, la memoria del sistema que proporciona acceso de lectura/escritura, a través del primer IC, para clientes de memoria que incluyen la CPU, el dispositivo de entrada/salida, el dispositivo posterior de gráficos, el procesador de imágenes, el dispositivo de compresión/expansión de datos, la máquina de representación, el controlador de memoria, en donde el controlador de memoria es la interfaz entre los puntos de memoria y la memoria del sistema; y elementos físicos de traducción para correlacionar las direcciones virtuales de las memorias intermedias de pixeles a ubicaciones de memoria física en la memoria del sistema, en donde las memorias intermedias de pixeles se asignan dinámicamente como baldosas de memoria físicamente contiguas.
4. El sistema de computadora de conformidad con la reivindicación 3, caracterizado porque el procesador de T.ágenes y la compresión/expansión de datos se implementan en un segundo IC.
5. El sistema de computadora de conformidad con la reivindicación 3 ó 4, caracterizado porque el primer IC se acopla a la memoria del sistema por una barra común de desmultiplexión que comprende una primera barra común, acoplada a un primer IC y que tiene 144 líneas cicladas a 133 MHz, una segunda barra común, acoplada en la memoria del sistema y que tiene 288 líneas cicladas a 66 MHz, y un desmultiplexor para desmultiplexar las señales se propagan entre la primera barra común y la segunda barra común.
6. Un sistema de computadora, caracterizado porque comprende: una CPU (unidad de procesamiento central) ; un dispositivo de entrada/salida; una unidad de extremo posterior de gráficos; un primer IC que incluye un procesador de datos y un dispositivo de compresión y expansión de datos integrado en el mismo; un segundo IC que incluye una máquina de representación de gráficos y un dispositivo controlador de memoria integrado en la misma; una memoria del sistema que permite el acceso de lectura/escritura para clientes de memoria que incluyen la CPU, el dispositivo de entrada/salida, el dispositivo posterior de gráficos, el procesador de imágenes, el dispositivo de compresión/expansión de datos, la máquina de representación, y el controlador de memoria, en donde el controlador de memoria es la interfaz entre los clientes de memoria y la memoria del sistema ; una barra común de datos de alta banda ancha para transferir los datos entre la memoria del sistema y el segundo IC; y elementos físicos de traducción para correlacionar las direcciones virtuales de las memorias intermedias de pixeles a ubicaciones de memoria física en la memoria del sistema, en donde los amortiguadores de pixeles se asignan dinámicamente como baldosas de memoria físicamente contigua.
7. El sistema de computadora de conformidad con la reivindicación 1, 3 ó 6, caracterizado porque los elementos físicos de traducción se implementan en la máquina de representación o en donde elementos físicos de traducción implementan en cada uno de la máquina de representación, el controlador de memoria, el procesador de imágenes, la compresión/expansión de datos, el IC posterior de gráficos, y el IC de entrada/salida .
8. El sistema de computadora de conformidad con la reivindicación 1, 3 ó 6, caracterizado porque la memoria del sistema se implemento usando DRAM sincrónico o en donde la memoria del sistema se implementa usando DRAM sincrónica (SDRAM) que tiene acceso vía una barra común de datos de memoria ancha de 256 bitios ciclada a 66 MHz.
9. El sistema de computadora de conformidad con la reivindicación 1, 3 ó 6, caracterizado porque las baldosas están comprendidas desde 64 kilobytes de memoria físicamente contigua arregladas como 128 filas de pixeles o en donde las baldosas están comprendidas de 64 kilobytes de memoria físicamente contigua arreglada como 128 filas de 128 pixeles en donde cada pixel es un pixel de 4 bytes.
10. El sistema de computadora de conformidad con la reivindicación 6, caracterizado porque el segundo IC está acoplado a la memoria del sistema por una barra común de desmultiplexión que comprende una primera barra común, acoplado al segundo IC y que tiene 144 líneas cicladas a 133 MHz, una segunda barra común, acoplada a la memoria del sistema y que tiene 288 lineas cicladas a 66 MHz, y un desmultiplexor para desmultiplexar las señales que se propagan entre la segunda barra común y la memoria del sistema.
11. El sistema de computadora de conformidad con la reivindicación 1, 3 ó 6, caracterizado porque las memorias intermedias de pixeles dinámicamente asignadas están comprendidas de n2 baldosas en donde n es un número entero.
12. Un sistema de computadora para la asignación dinámica de memoria, el sistema que tiene: un controlador de memoria; una memoria del sistema, unificada; clientes de memoria que tienen acceso a la memoria del sistema y el controlador de memoria. RESUMEN DE LA INVENCIÓN En la presente invención se describe un sistema de computadora que proporciona ia asignación dinámica de memoria para gráficos. El sistema de computadora incluye un controlador de memoria, una memoria del sistema, unificada, clientes de memoria cada uno que tiene acceso a la memoria del sistema vía el controlador de memoria. Los clientes de memoria pueden incluir una máquina de representación de gráficos, una CPU, un procesador de imágenes, un dispositivo de compresión/expansión d.e datos, un dispositivo de entrada/salida, un dispositivo posterior de gráficos. El sistema de computadora proporciona acceso de lectura/escritura a la memoria del sistema, unificada, a través del controlador de memoria, para cada uno de los clientes en memoria. Se incluyen elementos físicos de traducción para la correlación de direcciones virtuales de las memorias intermedias de pixeles a las ubicaciones de la memoria física en la memoria del sistema, unificada. Las memorias intermedias de pixeles se asignan dinámicamente como baldosas de memoria físicamente contigua. Los elementos físicos de traducción implementan en cada uno de los dispositivos de computadora, que se incluyen como los clientes de memoria en el sistema de computadora, que incluyen principalmente la máquina de representación.
MXPA/A/1997/006495A 1996-09-13 1997-08-26 Una arquitectura de memoria unificada con asignacion dinamica de memoria de graficos MXPA97006495A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/713,779 US6104417A (en) 1996-09-13 1996-09-13 Unified memory computer architecture with dynamic graphics memory allocation
US08713779 1996-09-13

Publications (2)

Publication Number Publication Date
MX9706495A MX9706495A (es) 1998-06-30
MXPA97006495A true MXPA97006495A (es) 1998-10-30

Family

ID=

Similar Documents

Publication Publication Date Title
US6104417A (en) Unified memory computer architecture with dynamic graphics memory allocation
US6721864B2 (en) Programmable memory controller
US6076139A (en) Multimedia computer architecture with multi-channel concurrent memory access
EP1058891B1 (en) Multi-processor system with preemptive memory sharing
US4809169A (en) Parallel, multiple coprocessor computer architecture having plural execution modes
US7783827B2 (en) Data processor having a memory controller with cache memory
US7707328B2 (en) Memory access control circuit
JPH02223091A (ja) コンピュータメモリシステム
US5822768A (en) Dual ported memory for a unified memory architecture
US6272583B1 (en) Microprocessor having built-in DRAM and internal data transfer paths wider and faster than independent external transfer paths
US6795075B1 (en) Graphic processor having multiple geometric operation units and method of processing data thereby
US6374244B1 (en) Data transfer device
JP2007018222A (ja) メモリアクセス制御回路
KR100726101B1 (ko) 메모리 제어 시스템
MXPA97006495A (es) Una arquitectura de memoria unificada con asignacion dinamica de memoria de graficos
JP2005346715A (ja) マルチポートランダムアクセスメモリ
US9201819B2 (en) Command processing apparatus, method and integrated circuit apparatus
JPH08129881A (ja) Sdram制御装置
JPH10144073A (ja) シンクロナスdramのアクセス機構
JP2003316642A (ja) メモリ制御回路、dma要求ブロック及びメモリアクセスシステム
US6785795B1 (en) Data processing device for use in cooperation with a memory
JPH09120371A (ja) メモリ制御装置
JP3442207B2 (ja) 記憶装置
JP2000029777A (ja) デ―タ転送装置
JPH05250256A (ja) メモリアクセス方法