ES2977462T3 - Motor de juego en un chip - Google Patents
Motor de juego en un chip Download PDFInfo
- Publication number
- ES2977462T3 ES2977462T3 ES16775106T ES16775106T ES2977462T3 ES 2977462 T3 ES2977462 T3 ES 2977462T3 ES 16775106 T ES16775106 T ES 16775106T ES 16775106 T ES16775106 T ES 16775106T ES 2977462 T3 ES2977462 T3 ES 2977462T3
- Authority
- ES
- Spain
- Prior art keywords
- chip
- game engine
- hardware
- processing unit
- engine
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/005—General purpose rendering architectures
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/06—Ray-tracing
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10W—GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
- H10W90/00—Package configurations
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/203—Image generating hardware
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/209—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10W—GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
- H10W70/00—Package substrates; Interposers; Redistribution layers [RDL]
- H10W70/60—Insulating or insulated package substrates; Interposers; Redistribution layers
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10W—GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
- H10W70/00—Package substrates; Interposers; Redistribution layers [RDL]
- H10W70/60—Insulating or insulated package substrates; Interposers; Redistribution layers
- H10W70/62—Insulating or insulated package substrates; Interposers; Redistribution layers characterised by their interconnections
- H10W70/63—Vias, e.g. via plugs
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10W—GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
- H10W72/00—Interconnections or connectors in packages
- H10W72/071—Connecting or disconnecting
- H10W72/072—Connecting or disconnecting of bump connectors
- H10W72/07251—Connecting or disconnecting of bump connectors characterised by changes in properties of the bump connectors during connecting
- H10W72/07254—Connecting or disconnecting of bump connectors characterised by changes in properties of the bump connectors during connecting changes in dispositions
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10W—GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
- H10W72/00—Interconnections or connectors in packages
- H10W72/20—Bump connectors, e.g. solder bumps or copper pillars; Dummy bumps; Thermal bumps
- H10W72/241—Dispositions, e.g. layouts
- H10W72/247—Dispositions of multiple bumps
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10W—GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
- H10W90/00—Package configurations
- H10W90/20—Configurations of stacked chips
- H10W90/297—Configurations of stacked chips characterised by the through-semiconductor vias [TSVs] in the stacked chips
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10W—GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
- H10W90/00—Package configurations
- H10W90/701—Package configurations characterised by the relative positions of pads or connectors relative to package parts
- H10W90/721—Package configurations characterised by the relative positions of pads or connectors relative to package parts of bump connectors
- H10W90/722—Package configurations characterised by the relative positions of pads or connectors relative to package parts of bump connectors between stacked chips
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10W—GENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
- H10W90/00—Package configurations
- H10W90/701—Package configurations characterised by the relative positions of pads or connectors relative to package parts
- H10W90/721—Package configurations characterised by the relative positions of pads or connectors relative to package parts of bump connectors
- H10W90/724—Package configurations characterised by the relative positions of pads or connectors relative to package parts of bump connectors between a chip and a stacked insulating package substrate, interposer or RDL
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
Se describen un chip electrónico y un conjunto de chip. El chip electrónico comprende uno o más núcleos de procesamiento y al menos una interfaz de hardware acoplada a al menos uno de dichos uno o más núcleos de procesamiento. Al menos uno de uno o más núcleos de procesamiento implementa un motor de juego en hardware. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Motor de juego en un chip
Campo técnico
La presente exposición se refiere a un chip o conjunto de chip electrónico. En particular, la presente exposición se refiere a un motor de juego implementado en un chip o conjunto de chip electrónico en hardware. La presente exposición se refiere, además, a un sistema sobre chip (“system on chip”) o a un sistema en paquete (“system in chip”).
Antecedentes
Los motores de juego desempeñan un papel crecientemente importante en las aplicaciones de gráficos. Una tarea importante de un motor de juego desoftwarees proporcionar los gráficos más realistas y de mejor calidad posible en el rendimiento en tiempo real. Un motor de juego desoftwarenormalmente se proporciona en forma de código ejecutable por ordenador que es ejecutado en una unidad central de procesamiento (CPU, por sus siglas en inglés). Por ejemplo, el motor de juego normalmente puede ejecutarse en un procesador o microprocesador de un dispositivo informático, tal como una CPU de un ordenador personal, una consola, un teléfono móvil o una tableta. Por lo tanto, el rendimiento de la CPU podría determinar el rendimiento de un motor de juego desoftware.
El motor de juego desoftwaretambién puede acceder a una unidad de procesamiento de gráficos (GPU, por sus siglas en inglés). Por ejemplo, la GPU puede representar gráficamente una lista de objetos individuales con un rendimiento muy elevado en la memoria de gráficos o en la memoria de vídeo. Una escena de gráficos de ordenador puede incluir un gran número de objetos con características relacionadas con su posición y orientación, comportamiento, propiedades materiales y similares. Con el fin de conseguir escenas altamente realistas, el motor de juego necesita considerar toda la escena, que con frecuencia puede contener millones de objetos que deben representarse gráficamente en la pantalla. Por ejemplo, el motor de juego puede considerar el comportamiento y la interacción de la luz con los objetos individuales y entre los objetos de la escena.
Añadiéndose a la complejidad de las escenas de gráficos de ordenador, la resolución de las pantallas está creciendo rápidamente. Entre los estándares se incluyen Full HD, con 1.920 por 1.080 píxeles; Ultra Hd , con 3.840 por 2.160 píxeles, y otros. Se prevé que continúe esta tendencia. Por ejemplo, actualmente están en desarrollo cascos visores de realidad virtual para el mercado consumidor con una resolución horizontal superior a 10.000 píxeles. El resultado es un crecimiento explosivo en el rendimiento necesario.
Con el fin de conseguir los objetivos de representación gráfica en tiempo real y seguir el ritmo de crecimiento de los requisitos, el motor de juego desoftwarepuede equilibrar una pérdida de calidad apenas perceptible con un rendimiento mejorado. Una manera de hacerlo es dividiendo las tareas individuales en subtareas, específicamente aquéllas que pueden realizarse eficientemente en una GPU. Las tareas gráficas podrían realizarse en paralelo en múltiples CPU. Actualmente, el número habitual de CPU en cada ordenador personal es de solo dos y el número habitual de GPU es de solo una; estos números no han crecido en los últimos años. De esta manera, elsoftwaregráfico no puede basarse en un número suficiente de CPU y/o GPU. Además, aunque se disponga de muchas CPU, un subsistema multi-CPU con frecuencia es excesivamente ineficiente con la energía para una tarea específica. Por lo tanto, incluso una ejecución en paralelo podría verse restringida por elhardwareactualmente disponible.
Sin embargo, una ejecución en paralelo de tareas también requiere una redefinición completa de la capa desoftwareentre las aplicaciones desoftwaregráfico en general por un lado y en los controladores de la GPU por el otro lado. Entre los ejemplos de dichas capas de interfaz redefinidas se incluyen interfaces de programación, tales como Mantle (disponible de Advanced Micro Devices, Inc. (AMD)), DirectX 12 (disponible de Microsoft Corporation), Metal (disponible de Apple Inc.) y Vulkan (disponible de The Khronos Group, Inc.), que tienen en común que interactúan con la GPU mucho menos para conseguir una mayor eficiencia. Sin embargo, existe un equilibrio entre el incremento de la eficiencia y una mayor complejidad de las interfaces de programación. Por lo tanto, se espera que solo un número reducido de programadores de gráficos experimentados utilizará de hecho estas nuevas interfaces de alto rendimiento. Parasoftwaregráfico menos exigente, resultan preferentes las interfaces más simples más antiguas.
Por lo tanto, es un objetivo de la presente exposición proporcionar procesamiento de gráficos que satisfaga las demandas de complejidad y eficiencia.
El documento n.° US 2005/086040 A1 describe un sistema que incorpora una unidad central de procesamiento y una unidad física de procesamiento (PPU, por sus siglas en inglés). La PPU puede generar datos físicos para el uso en una simulación física o animación de juego. La PPU puede comprender, además, un motor de control de PPU (PCE, por sus siglas en inglés), que puede incluir un microprocesador, que controla el funcionamiento general de la PPU. Las aplicaciones que se ejecutan en un huésped pueden invocar un controlador de PPU desde un programa de juego, lo que puede iniciar la PPU con el fin de calcular datos de simulación física.
El documento n.° EP 2437217 A2 se refiere a un núcleo de trazado de rayos con unidades de generación de rayos y una pluralidad de unidades de recorrido e intersección en una arquitectura MIMD. Las unidades de generación de rayos generan rayos oculares, que seguidamente son testeados por la pluralidad de unidades de recorrido e intersección para intersectar triángulos.
Resumen
La invención se define como un chip electrónico, un conjunto de chip, un paquete y un dispositivo de computación según las reivindicaciones independientes. Las realizaciones preferentes se definen en las reivindicaciones dependientes.
Breve descripción de los dibujos
Las características específicas, aspectos y ventajas de la presente exposición se entenderán mejor en referencia a la descripción siguiente y dibujos adjuntos, en los que:
La fig. 1 ilustra una vista esquemática de un chip electrónico que incluye uno o más motores de juego en hardware según una realización de la presente exposición.
La fig. 2 muestra una vista esquemática de un chip electrónico que incluye una pluralidad de motores de juego en hardware y motores de trazado de rayos según una realización de la presente exposición.
La fig. 2a muestra una vista esquemática de un chip electrónico, en el que cada motor de juego en hardware incorpora su propio motor especializado de trazado de rayos, según una realización de la presente exposición. La fig. 3 muestra una vista esquemática de un procesador de motor de juego según una realización de la presente exposición.
La fig. 4 muestra una vista esquemática de un procesador gráfico discreto autónomo según una realización de la presente exposición.
La fig. 4a muestra otra vista esquemática de un procesador gráfico discreto autónomo según una realización de la presente exposición.
La fig. 5 ilustra una implementación de un sistema sobre chip (SOC, por sus siglas en inglés, “system on chip”) con una pluralidad de CPU según una realización de la presente exposición.
La fig. 5a muestra otra vista esquemática de un SOC según una realización de la presente exposición.
La fig. 5b muestra todavía otra vista esquemática de un SOC según una realización de la presente exposición. La fig. 6 muestra una realización de un chip como chip coprocesador, según una realización de la presente exposición.
La fig. 6a muestra una vista esquemática de un chip según una realización de la presente exposición, y Las figs. 7a, 7b y 7c muestran diversos ejemplos de conjuntos de chip según realizaciones de la presente exposición.
Descripción detallada
En la descripción siguiente se hace referencia a dibujos que muestran a título ilustrativo diversas realizaciones. Además, posteriormente se describen diversas realizaciones en referencia a varios ejemplos. Debe entenderse que las realizaciones pueden incluir cambios en el diseño y la estructura sin apartarse del alcance de la materia de la invención reivindicada.
La fig. 1 muestra un chip electrónico según una realización de la presente exposición. El chip electrónico puede incluir un único motor de juego en hardware o una pluralidad de los mismos, que pueden estar incorporados físicamente en el chip, que puede, por lo tanto, representar un sistema sobre chip (SOC).
El chip 100 puede comprender una pluralidad de núcleos de procesamiento, cada uno de los cuales implementa en hardware un motor de juego 102 (en hardware), una unidad de procesamiento de gráficos (GPU) 104 y una unidad central de procesamiento (CPU) 106. Aunque cada núcleo se muestra como implementando en hardware un componente dedicado, debe entenderse que una pluralidad de núcleos de procesamiento podría implementar un componente o que un núcleo de procesamiento podría implementar una pluralidad de componentes, tal como el motor de juego 102, la GPU 104 y la CPU 106, en cualquier combinación. El chip 100 puede comprender una pluralidad de motores de juego, una pluralidad de GPU y una pluralidad de CPU, en cualquier número y combinación.
El chip 100 puede estar incluido en un sistema huésped (no mostrado) en forma de un SOC. El motor de juego 102 en hardware puede procesar directamente conjuntos de datos construidos específicamente, en una memoria principal externa del sistema huésped, que puede ser accesible a través de uno o más puertos de un controlador 108 de memoria en chip y/o que podría estar dispuesto en una zona de memoria designada específicamente (no mostrada) en el chip 100 mismo.
El motor de juego 102 en hardware puede ser capaz de determinar, por ejemplo, aunque sin limitación, cómo los objetos proyectan sombras sobre otros objetos de una escena gráfica de ordenador; cómo los objetos se reflejan en otros objetos, o cómo la luz que cae sobre un objeto ilumina otros objetos circundantes. Sin embargo, debe entenderse que el motor de juego 102 puede estar configurado para realizar otras tareas y/o puede proporcionar otras funcionalidades, tales como la gestión, la simulación y la representación gráfica de los objetos de la escena gráfica de ordenador.
El motor de juegos 102 en hardware puede presentar la GPU 104 en el chip 100 a su disposición. El motor de juegos 102 en hardware puede generar conjuntos de datos diseñados específicamente para ser transferidos a la<g>P<u>104 en el chip 100. El motor de juegos 102 en hardware puede colocar estos conjuntos de datos en la memoria externa del chip 100 a través de uno o más puertos del controlador 108 de memoria en chip y/o colocar los conjuntos de datos en una zona de memoria diseñada específicamente en el chip 100 mismo. El motor de juegos 102 en hardware puede poseer medios para ordenador a la GPU 104 en el chip 100 que procese los conjuntos de datos generados por el motor de juegos 102 en hardware, tal como uno o más de entre búferes, canales y/o registros de comandos, mediante una conexión directa con la GPU 104 y/o indirectamente mediante una conexión con la CPU 106 en el chip 100. En el último caso, la CPU 106 en el chip 100 puede estar configurado para ordenar a la GPU 104 que opere en los conjuntos de datos generados por el motor de juego 102 en hardware.
Tal como se muestra en la fig. 1, el chip 100 puede comprender un codificador y descodificador 110 de vídeo adicional, una pantalla 112 y una interfaz 114 dehardware.El codificador y descodificador 110 de vídeo puede realizar diversas funcionalidades dedicadas, dirigidas a codificar y descodificar las secuencias de vídeo. La pantalla 112 puede ser una pantalla configurada para mostrar por lo menos parte de la salida de la GPU 104 o puede estar configurado para mostrar un estado del chip 100 mediante, por ejemplo, la utilización de una pluralidad de indicadores de estatus. Además, la pantalla 112 también puede estar configurado como una interfaz para proporcionar datos a una pantalla externa (no mostrada). La interfaz 114 dehardwarepuede comprender o representar una o más interfaces, que pueden estar configuradas para proporcionar datos para componentes individuales del chip 100, tal como el motor de juego 102, la GPU 104, la CPU 106, el codificador y descodificador 110 de vídeo, y/o para dar salida a los datos generados por los componentes individuales, tales como los datos generados por el motor de juego 102, la GPU 104 o la CPU 106. La interfaz dehardwarepuede estar configurado para cumplir uno o más estándares, tales como USB, HDMI y similares.
La fig. 2 muestra otra realización de un chip según la presente exposición. El chip 200 puede ser similar al chip 100 de la fig. 1. Por lo tanto, los mismos signos de referencia utilizados en la fig. 1 se han utilizado en la fig. 2.
El chip 200 puede comprender uno o más de entre un motor de juego 102, una GPU 104, una CPU 106, un controlador 108 de memoria, un codificador y descodificador 110 de vídeo, una pantalla 112 y una interfaz 114 dehardware.El chip 200 puede comprender, además, una pluralidad de motores de juego 102, una pluralidad de GPU 104 y una pluralidad de CPU 106, en cualquier combinación, que pueden estar implementadas enhardwaremediante uno o más núcleos de procesamiento respectivos del chip 200.
El motor único o la pluralidad de motores de juego 102 en hardware pueden estar incorporados físicamente en el chip 200, formando de esta manera un SOC. El motor o motores de juego 102 en hardware pueden estar incorporados en el SOC junto con uno o más motores 202 de trazado de rayos. El motor o motores 202 de trazado de rayos pueden ser implementados por como mínimo un núcleo de procesamiento del chip 200 y pueden estar configurados de manera que se potencie la funcionalidad del motor o motores de juego 102. Tal como reconocerá el experto en la materia, la funcionalidad habitual de un motor de trazado de rayos es conocida. La funcionalidad puede incluir, por ejemplo, la eliminación selectiva en la vista y la eliminación selectiva de la cobertura en el búfer-z a fin de determinar la visibilidad de los objetos; voxelización de una escena como etapa de preparación para el cálculo de la iluminación global; trazado de cono basado en vóxels dispersos para la iluminación global; mecánica de las fibras musculares y deformación musculoesquelética de la piel, métodos de elementos finitos para el modelado biomecánico de los músculos; dinámica de fluidos utilizando SPH (por sus siglas en inglés, hidrodinámica de partículas con suavización) para efectos realistas que involucran volúmenes de agua, volúmenes de lava volcánica y efectos astrofísicos relacionados con, por ejemplo, superficies de estrellas, simulación de agua Euleriana en tiempo real y/o dinámicas realistas de la vegetación, en cualquier combinación.
El motor o motores 202 de trazado de rayos pueden utilizarse para potenciar la funcionalidad del motor de juego 102 en hardware. Por ejemplo, los motores de juego 102 en hardware pueden descargar de forma transparente tareas de procesamiento en los motores 202 de trazado de rayos. Debe entenderse que uno o más motores 202 de trazado de rayos pueden realizar determinadas tareas mejor y/o más rápidamente debido a su especialización para las restricciones temporales dadas.
Los motores 202 de trazado de rayos pueden estar asignados a motores de juego 102 individuales de acuerdo con la carga de trabajo de los motores de juego 102 o de acuerdo con una asignación predefinida. La asignación puede ser controlada por los motores de juego 102 o por la CPU 106 de acuerdo con condiciones internas o en respuesta a comandos recibidos mediante la interfaz 114 dehardwaredel chip 200.
La fig. 2a muestra todavía otra realización de un chip según la presente exposición, en la que cada motor de juego en hardware puede incorporar su propio motor especializado de trazado de rayos. El chip 200' puede incluir partes iguales o similares a las descritas en referencia a los chips 100 y 200 en las figs. 1 y 2. Por lo tanto, se han utilizado signos de referencia iguales para denotar partes iguales. El chip 200' puede incluir una o más GPU 104, una o más CPU 106, un controlador 108 de memoria, un codificador y descodificador 110 de vídeo, una pantalla 112 y una interfaz 114 dehardware,en cualquier combinación. Los componentes individuales pueden ser implementados por como mínimo un núcleo de procesamiento del chip 200'.
El chip 200' incluye, además, un motor de juego 202' combinado que presenta una versión especializada incorporada de un motor de trazado de rayos. La versión especializada del motor de trazado de rayos puede estar optimizado específicamente para los requisitos de la funcionalidad del motor de juego 202' en hardware. El motor de trazado de rayos puede estar inclido en hardware junto con el motor de juego a fin de optimizar de esta manera el intercambio de datos, en términos de ancho de banda y latencia, entre el motor de juego y el motor de trazado de rayos, utilizando memorias intermedias (búferes) de comunicación internas o mediante la transmisión directa de los datos entre el motor de juego y el motor de trazado de rayos integrado.
La fig. 3 muestra un procesador de motor de juego que incluye un chip según una realización de la presente exposición. El procesador 300 de motor de juego puede incluir componentes similares a los componentes de los chips 100, 200 y 200', tal como se muestra en las figs. 1, 2 y 2a. Por lo tanto, se han denotado partes iguales o similares utilizando signos de referencia iguales.
El procesador 300 de motor de juego puede incluir uno o más motores de juego 102, uno o más núcleos 202 de trazado de rayos, un controlador 108 de memoria, un codificador y descodificador 110 de vídeo, una pantalla 112 y una interfaz 114 dehardware.El procesador 300 puede estar realizado enhardwareen forma e un chip procesador de motor de juego o de un paquete procesador de motor de juego, donde el paquete puede contener uno o más circuitos integrados que implementan en hardware la funcionalidad de los componentes individuales. El motor de juego 102 en hardware puede estar incorporado en un componente delhardware, tal como el procesador 300, que puede ser un chip procesador del motor de juego autónomo o un paquete procesador del motor de juego. El procesador de motor de juego puede resultar particularmente útil en el caso de gráficos 3D u ordenadores de juego de gama alta. Estos sistemas informáticos normalmente contienen CPU huésped separados, junto con tarjetas gráficas 3D separadas con una o más GPU. El procesador 300 de motor de juego autónomo podría, por ejemplo, estar colocado en una tarjeta gráfica 3D junto con una o más GPU, aunque ello no está limitado a esta posibilidad.
El procesador 300 de motor de juego puede incluir medios adicionales para comunicar conjuntos de datos relacionados con la funcionalidad del motor de juego 102 en hardware hacia y desde GPU externas, por ejemplo, mediante la utilización de las funcionalidades del DMA (por sus siglas en inglés, acceso directo a memoria) en el chip de la GPU, lo que puede permitir el acceso hacia y desde la memoria de vídeo de la GPU. Los medios adicionales pueden estar implementados utilizando la interfaz 114 dehardwareo utilizando otro controlador de comunicación (no mostrado).
La fig. 4 muestra un procesador de gráficos que incluye un chip o conjunto de chip según una realización de la presente exposición. El procesador 400 de gráfico puede incluir componentes similares, tal como se comenta en referencia a las figs. 1 a 3. Por lo tanto, se han denotado componentes iguales o similares utilizando signos de referencia iguales.
El procesador 400 de gráficos puede incluir por lo menos uno de entre uno o más motores de juego 102, una o más GPU 104, un controlador 108 de memoria, un codificador y descodificador 110 de vídeo, una pantalla 112 y una interfaz 114 dehardware,en cualquier combinación. El motor o motores de juego 102 en hardware también pueden estar incorporados físicamente junto con uno o más motores de trazado de rayos (no mostrados) configurados para potenciar la funcionalidad del motor de juego en el procesador 400 de gráficos. El procesador 400 de gráficos puede realizarse en forma de un chip procesador de gráficos «discreto» autónomo o de un paquete procesador de gráficos discreto autónomo, en el que el paquete puede contener uno o más circuitos integrados.
La fig. 4a muestra otra realización de un procesador de gráficos que incluye un chip o conjunto de chip según la presente exposición. El procesador 400' de gráficos puede incluir componentes iguales o similares al procesador 400 de gráficos de la fig. 4. Por lo tanto, se han utilizado signos de referencia iguales para denotar componentes iguales o similares. El procesador 400' de gráficos puede incluir una o más GPU 104, un controlador 108 de memoria, un codificador y descodificador 110 de vídeo, una pantalla 112 y una interfaz 114 dehardware,en cualquier combinación. Además, el procesador 400' de gráficos puede incluir una pluralidad de motores de juego 402 que pueden estar incorporados físicamente en el procesador 400' de gráficos, en el que cada motor de juego 402 en hardware incorpora su propio motor de trazado de rayos especializado, optimizado para potenciar la funcionalidad del motor de juego. El motor de juego 402 en hardware puede ser similar al motor e juego 202' mostrado en la fig. 2a.
Tal como se muestra en las figs. 4 y 4a, puede haber incorporados uno o más motores de juego 102, 402 en hardware en un chip o paquete procesador de gráficos discreto autónomo, donde el chip o paquete procesador de gráficos puede incluir uno o más circuitos integrados. Podría haber conectados múltiples circuitos integrados en un paquete, por ejemplo conectados entre sí mediante el uso de una bobina de interposición y/o mediante apilado, y/o mediante la utilización de un procedimiento de fabricación similar, tal como se ha comentado en detalle anteriormente.
Las figs. 5, 5a y 5b dan a conocer realizaciones de chips según la presente exposición. Los chips 500, 500' y 500'' pueden incluir componentes similares a los componentes mostrados en las figs. 1 a 4. Por lo tanto, se han utilizado los mismos signos de referencia en las figs. 5, 5a y 5b.
El chip 500 de la fig. 5 puede incluir uno o más motores de juego 102, una o más GPU 104, un controlador 108 de memoria, un codificador y descodificador 110 de vídeo, una pantalla 112 y una interfaz 114 dehardware,en cualquier combinación. Tal como se comenta en referencia a las figs. 1 y 2, los componentes individuales pueden ser implementados por como mínimo un núcleo de procesamiento del chip 500. El chip 500 puede incluir, además, una pluralidad de CPU 106a, 106b, donde cada CPU puede estar configurada para ejecutar instrucciones de acuerdo con una arquitectura del conjunto de instrucciones (ISA, por sus siglas en inglés) diferente. El motor de juego 102 en hardware y dichos tipos múltiples de CPU 106a, 106b pueden estar incorporados en un único dispositivo dehardware,tal como un SOC. Mediante la utilización de la pluralidad de CPU 106, 106b, el chip 500 podría ser capaz de ejecutarsoftwarecompilado para diferentes plataformas, sistemas o arquitecturas, por ejemplo, aunque sin limitación, sistemas basados en la arquitectura x86 de Intel, tal como la utilizada habitualmente en ordenadores personales, y sistemas basados en el conjunto de instrucciones ARM, que puede utilizarse habitualmente en teléfonos móviles y tabletas, mediante el direccionamiento de las instrucciones respectivas a la CPU 106a y/o a la CPU 106b. El chip 500 puede incluir lógica para determinar, para cada código informático que vaya a ejecutarse en el chip 500, una arquitectura para la que se ha compilado el código de programa y asignar el código de programa a una CPU respectiva. Aunque la fig. 5 muestra solo dos tipos de CPU, 106a, 106b, debe entenderse que pueden utilizarse otros tipos de CPU, 106a, 106b, para ejecutar instrucciones según otras ISA, sin que ello suponga apartarse del alcance de la presente exposición.
Tal como se muestra en la fig. 5a, el chip 500' puede incluir componentes iguales o similares a los comentados anteriormente con respecto al chip 500, que se denotan en la fig. 5a utilizando los mismos signos de referencia. De manera similar al chip 200 mostrado en la fig. 2, el chip 500' puede incluir, además, uno o más motores 502 de trazado de rayos. El motor o motores de juego 102 en hardware pueden estar incorporados físicamente en un SOC junto con el motor o motores 202 de trazado de rayos, configurados de manera que se potencie la funcionalidad de los motores de juego 102 en hardware. El chip 500' puede incorporar múltiples tipos de CPU, donde cada tipo de CPU está diseñado para ejecutar una ISA diferente.
El chip 500'', tal como se muestra en la fig. 5b, puede incluir componentes iguales o similares a los chips 500 y 500' comentados anteriormente con respecto a las figs. 5 y 5a. Por lo tanto, en la fig. 5b se han utilizado los mismos signos de referencia. El chip 500'' puede incluir uno o más motores de juego 502' similares a los motores de juego 202' comentados anteriormente en referencia a la fig. 2a y los motores de juego 402 comentados anteriormente en referencia a la fig. 4a. El chip 502' puede incluir uno o más motores de juego 502' en hardware, incorporados físicamente en un SOC, donde cada motor de juego 502' en hardware puede incorporar su propio motor de trazado de rayos especializado, optimizado para potenciar la funcionalidad del motor de juego respectivo 502'. El chip 502' puede incorporar múltiples tipos de CPU, donde cada tipo de CPU puede estar diseñado para ejecutar instrucciones de acuerdo con una ISA diferente.
La fig. 6 muestra un sistema según una realización de la presente exposición. El sistema 600 puede incluir una CPU 602 junto con un coprocesador 604 de motor de juego. El coprocesador 604 de motor de juego puede comprender uno o más chips tal como se ha comentado anteriormente en referencia a las figs. 1 a 5. El coprocesador 604 de motor de juego puede incorporar uno o más motores de juego 606 en hardware y, opcionalmente, uno o más motores 608 de trazado de rayos. Los motores 608 de trazado de rayos opcionales pueden estar configurados de manera que pueda potenciarse la funcionalidad del motor de juego 606. El coprocesador 604 de motor de juego puede comprender, además, un controlador 610 de memoria y una interfaz 612 dehardwarepara comunicarse con la CPU 602. La CPU 602 puede incluir uno o más núcleos 614 de CPU, un controlador 616 de memoria y una interfaz 618 dehardware.
El coprocesador 604 de motor de juego puede entenderse como un chip separado, opcionalmente con su propio paquete, que puede estar conectado con la CPU 602 mediante un bus de interfaz, tal como un bus PCI Express, o cualquier otra interfaz de bus o interconexión. El coprocesador 604 de motor de juego puede contener su propio controlador 610 de memoria, donde la memoria puede estar dispuesto fuera del coprocesador 604 de motor de juego o sobre el coprocesador 604 de motor de juego.
El sistema 600 puede incluir, además, una o más GPU (no mostradas) y puede comprender interfaces para la conexión a una o más GPU, por ejemplo, el bus PCI Express. Sin embargo, debe entenderse que podría utilizarse cualquier otra tecnología de interconexión o de bus para interconectar la CPU 602 con el coprocesador 604 del motor de juego y la GPU única o múltiples GPU.
La CPU 602 puede emitir comandos al coprocesador 604 del motor de juego, que seguidamente puede preparar conjuntos de datos y comandos que pueden comunicarse de vuelta a la CPU 602 o, mediante las interfaces 602, 618, a una GPU discreta externa. Puede conseguirse un rendimiento más alto mediante la descarga de tareas de la CPU al coprocesador 604 del motor de juego, que puede contener circuitos diseñados específicamente para estas tareas. Entre la tarea o tareas pueden incluirse una o más de entre determinar cómo los objetos proyectan sombras sobre otros objetos; determinar cómo se reflejan los objetos en otros objetos, o determinar cómo la luz que cae sobre un objeto ilumina otros objetos circundantes, y similares. Debe entenderse que dicha enumeración no está limitada y puede ampliarse con otra u otras tareas, tal como se ha definido anteriormente.
El controlador 610 de memoria dedicado en el coprocesador 604 de motor de juego puede permitir que el coprocesador 604 de motor de juego utilice su memoria local para realizar tareas específicamente de motor de juego. Lo anterior puede mejorar ventajosamente el rendimiento mediante el incremento de la velocidad de entrada/salida y el ancho de banda.
La fig. 6a muestra un chip 700 según una realización de la presente exposición. El chip 700 puede incluir una CPU 702 con un solo núcleo de CPU o una pluralidad de ellos. El chip 700 puede incluir, además, uno o más motores de juego 704 en hardware y opcionalmente, uno o más motores 706 de trazado de rayos que pueden estar configurados de manera que se potencie la funcionalidad del motor de juego 704. Por lo tanto, el chip 700 puede considerarse una variación del sistema 600 tal como se ha comentado anteriormente en referencia a la fig. 6. Sin embargo, el chip 700 puede integrar el sistema en un único chip o en un conjunto de chip. El chip 700 puede incluir, además, un controlador 708 de memoria y una interfaz 710. De acuerdo con lo anterior, el chip 700 puede ser un único chip que contiene tanto la CPU 702 como el motor de juego 702 en hardware, con los núcleos 706 opcionales de trazado de rayos en un único chip, donde el controlador 708 de memoria puede ser compartido por la CPU 702 y los motores de juego 704 para interconectarse con componentes externos, tales como GPU externas. Por ejemplo, tal como se ha comentado anteriormente en referencia a las interfaces 612, 618, la interfaz 710 puede utilizarse para interconectar una o más GPU discretas externas (no mostradas), mediante una interconexión o bus, tal como el bus PCI Express o cualquier otro tipo de bus o interconexión.
Las figs. 7a, 7b y 7c muestran diversos ejemplos de conjuntos de chip según realizaciones de la presente exposición. Debe entenderse que un chip según una realización de la presente exposición puede estar dividido en múltiples subchips y proporcionarse con las interconexiones requeridas entre los subchips, tales como miles o decenas de miles de interconexiones, de manera que el conjunto de chip funcione de la misma en que funcionaría un único chip. A pesar de que las realizaciones de la presente exposición se refiere al motor de juego en un chip, el chip también puede estar implementado como un conjunto de chip. Por lo tanto, tanto un chip individual, como una implementación en forma de un conjunto de chip, tal como el conjunto de chip mostrado en las figs. 7a, 7b y 7c, deben entenderse como un motor de juego en un chip según las realizaciones de la presente exposición.
Las figs. 7a, 7b y 7c muestran conjuntos de chip de ejemplo según una o más realizaciones de la presente exposición. Los conjuntos de chip pueden incluir un sustrato 800 de paquete, una pluralidad de subchips 802 y una bobina de interposición 804. El conjunto de chip puede estar configurado en el sustrato 800 de paquete mediante la bobina de interposición 804. La pluralidad de subchips 802 conjuntamente puede constituir el motor de juego según las realizaciones de la presente exposición y la pluralidad de subchips 802 puede estar interconectada mediante la bobina de interposición 804. La bobina de interposición 804 misma puede ser un dado de silicio grande con capas interconectadas de metal que puede producirse con equipo de producción de chip. Las capas interconectadas de metal en la bobina de interposición 804 puede sustituir las capas de interconexión que de otro modo interconectarían diversas zonas de un único chip.
En una realización mostrada en la fig. 7a, la bobina de interposición 804 puede estar conectado al sustrato 800 de paquete utilizando vías a través de silicio 806.
La fig. 7b muestra todavía otra realización de un conjunto de chip utilizando otro método de interconexión de la pluralidad de subchips 802 en un único motor de juego. En la presente realización de ejemplo, los diversos subchips 804 pueden estar integrados en el conjunto de chip utilizando micropuentes 808 que pueden estar integrados en el sustrato 800 de paquete. Los micropuentes 808 pueden ser ellos mismos dados de silicio con capas interconectadas de metal producidos con equipos de producción de chips. Las capas interconectadas de metal en los micropuentes 808 puede sustituir las capas de interconexión que de otro modo interconectarían diversas zonas de un único chip.
La fig. 7c muestra todavía otra realización de ejemplo de un conjunto de chip. En la presente realización de ejemplo, la pluralidad de subchips 802 puede estar interconectado verticalmente en el conjunto de chip, colocado sobre el sustrato 800 de paquete. Lo anterior también puede denominarse «apilamiento de chip en 3D». La interconexión de subchips 802 en vertical puede utilizar, por ejemplo, vías a través de silicio, tal como las vías a través de silicio 806 de la fig. 7a, o utilizar tecnología de acoplamiento inductivo para habilitar la comunicación inalámbrica de campo cercano entre chips apilados en 3D.
Claims (15)
- REIVINDICACIONESi. Chip electrónico (200, 300, 500', 600, 700), que comprende:un primer núcleo de procesamiento que implementa un motor de juego (102, 606) en hardware mediante circuitos electrónicos dedicados, yun segundo núcleo de procesamiento que implementa un motor (202, 502, 608) de trazado de rayos en hardware mediante circuitos electrónicos dedicados,una interfaz (114, 612, 614, 710) de hardware que acopla el motor de juego (102, 606) implementado en el primer núcleo de procesamiento con el motor ((202, 502, 608) de trazado de rayos implementado en el segundo núcleo de procesamiento, en el que la interfaz (114, 612, 614, 710) de hardware acopla el motor de juego (102, 606) con el motor (202, 502, 608) de trazado de rayos directamente o utilizando búfers, en el que el motor de juego (102, 606) está configurado para descargar un conjunto de tareas o subtareas del motor de juego (102, 606) en el motor (202, 502, 608) de trazado de rayos mediante la interfaz (114, 612, 614, 710) de hardware.
- 2. Chip (200, 300, 500', 600, 700) según la reivindicación 1, en el que el chip (200, 300, 500', 600, 700) comprende, además, una pluralidad de núcleos de procesamiento, en el que cada uno de los núcleos de procesamiento implementa un motor de juego (102, 606) en hardware mediante circuitos electrónicos dedicados o un motor (202, 502, 608) de trazado de rayos en hardware mediante circuitos electrónicos dedicados, en el que cada uno de la pluralidad de motores de juego (102, 606) está asociado a uno de la pluralidad de motores (202, 502, 608) de trazado de rayos.
- 3. Chip (200, 300, 500', 600, 700) según la reivindicación 1 o 2, que comprende, además, un núcleo de procesamiento que implementa una unidad central de procesamiento (106, 106a, 106b, 602, 702).
- 4. Chip (200, 300, 500', 600, 700) según la reivindicación 1 o 2, que comprende, además, una pluralidad de núcleos de procesamiento que implementa una pluralidad de unidades centrales de procesamiento (106, 106a, 106b, 602, 702), estando configurada cada unidad central de procesamiento (106, 106a, 106b, 602, 702) para ejecutar instrucciones de una arquitectura diferente de conjunto de instrucciones.
- 5. Chip (200, 300, 500', 600, 700) según una cualquiera de las reivindicaciones anteriores, en el que el motor de juego (102, 606) está configurado para comunicar datos mediante la interfaz (114, 612, 614, 710) dehardwarecon un unidad de procesamiento (104) de gráficos.
- 6. Chip (200, 300, 500', 600, 700) según la reivindicación 5, en el que el chip (200, 300, 500', 600, 700) comprende la unidad de procesamiento (104) de gráficos.
- 7. Chip (200, 300, 500', 600, 700) según cualquiera de las reivindicaciones 1 a 6, en el que por lo menos uno de los núcleos de procesamiento implementa una unidad de procesamiento (104) de gráficos, en el que el chip (200, 300, 500', 600, 700) comprende, además, una memoria, en el que el motor de juego (102, 606) está configurado para generar datos para la unidad de procesamiento (104) de gráficos y para proporcionar los datos a la unidad de procesamiento (104) de gráficos a través de la memoria, o en el que la unidad de procesamiento (104) de gráficos incluye una memoria de vídeo y el motor de juego (102, 606) está configurado para proporcionar datos a la unidad de procesamiento (104) de gráficos mediante la memoria de vídeo.
- 8. Chip (200, 300, 500', 600, 700) según cualquiera de las reivindicaciones 1 a 7, en el que el motor de juego (102, 606) está configurado para llevar a cabo una o más tareas, generando de esta manera comandos y/o conjuntos de datos, en el que el motor de juego (102, 606) y el motor (202, 502, 608) de trazado de rayos están acoplados interoperablemente para llevar a cabo la tarea o tareas, y en el que la tarea o tareas incluye uno o más de entre determinar cómo los objetos proyectan sombras sobre otros objetos, determinar cómo los objetos se reflejan en otros objetos, y determinar cómo la luz que cae sobre un objeto ilumina otros objetos circundantes.
- 9. Chip (200, 300, 500', 600, 700) según una cualquiera de las reivindicaciones 1 a 8, siendo el chip (200, 300, 500', 600, 700) un sistema (600) sobre chip (200, 300, 500', 600, 700).
- 10. Conjunto de chip, que comprende:por lo menos un chip (200, 300, 500', 600, 700) según una cualquiera de las reivindicaciones 1 a 9.
- 11. Conjunto de chip según la reivindicación 10, que comprende, además, uno o más de entre por lo menos una unidad central de procesamiento (106, 106a, 106b, 602, 702), en el que la unidad o unidades centrales de procesamiento (106, 106a, 106b, 602, 702) están conectadas a la interfaz o interfaces (114, 612, 614, 710) dehardwaredel chip (200, 300, 500', 600, 700), por lo menos una unidad de procesamiento (104) de gráficos, en el que la unidad o unidades de procesamiento (104) de gráficos están conectadas a la interfaz o interfaces (114, 612, 614, 710) dehardwaredel chip (200, 300, 500', 600, 700) y un controlador (108, 610, 708) de memoria configurado para intercambiar datos con el motor de juego (102, 606) del chip (200, 300, 500', 600, 700).
- 12. Conjunto de chip según la reivindicación 10, que comprende, además, una pluralidad de circuitos integrados apilados, en el que un circuito integrado está apilado sobre otro circuito integrado o sobre un chip interpositor.
- 13. Paquete que incluye el conjunto de chip según cualquiera de las reivindicaciones 10 a 12, en el que el paquete es un «sistema en paquete» o un «paquete sobre paquete».
- 14. Dispositivo informático, que incluye:por lo menos un chip (200, 300, 500', 600, 700) según una cualquiera de las reivindicaciones 1 a 9, y una pantalla (112) configurada para representar datos basándose en los datos proporcionados por el chip o chips (200, 300, 500', 600, 700).
- 15. Dispositivo informático según la reivindicación 14, en el que el dispositivo informático es un dispositivo móvil, un teléfono inteligente, o un dispositivo de realidad virtual.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201562219593P | 2015-09-16 | 2015-09-16 | |
| US201562220167P | 2015-09-17 | 2015-09-17 | |
| US15/047,556 US11295506B2 (en) | 2015-09-16 | 2016-02-18 | Chip with game engine and ray trace engine |
| PCT/EP2016/072018 WO2017046354A1 (en) | 2015-09-16 | 2016-09-16 | Game engine on a chip |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2977462T3 true ES2977462T3 (es) | 2024-08-23 |
Family
ID=58238830
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES16775106T Active ES2977462T3 (es) | 2015-09-16 | 2016-09-16 | Motor de juego en un chip |
Country Status (6)
| Country | Link |
|---|---|
| US (4) | US11295506B2 (es) |
| EP (2) | EP4332906A3 (es) |
| CN (1) | CN108025210A (es) |
| DK (1) | DK3349870T3 (es) |
| ES (1) | ES2977462T3 (es) |
| WO (1) | WO2017046354A1 (es) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107930118B (zh) * | 2017-12-28 | 2021-04-13 | 苏州蜗牛数字科技股份有限公司 | 一种Unity引擎后处理效果过程可视化方法和装置 |
| US11301951B2 (en) | 2018-03-15 | 2022-04-12 | The Calany Holding S. À R.L. | Game engine and artificial intelligence engine on a chip |
| CN109324816A (zh) * | 2018-09-12 | 2019-02-12 | Oppo广东移动通信有限公司 | 游戏加载方法及相关产品 |
| US10909652B2 (en) | 2019-03-15 | 2021-02-02 | Intel Corporation | Enabling product SKUs based on chiplet configurations |
| US11625884B2 (en) * | 2019-06-18 | 2023-04-11 | The Calany Holding S. À R.L. | Systems, methods and apparatus for implementing tracked data communications on a chip |
| US11579688B2 (en) * | 2019-06-28 | 2023-02-14 | Canon Kabushiki Kaisha | Imaging display device and wearable device |
| CN112154413A (zh) * | 2019-08-20 | 2020-12-29 | 深圳市大疆创新科技有限公司 | 配置文件生成方法及装置、存储介质 |
| CN113574656B (zh) | 2020-02-28 | 2025-02-21 | 华为技术有限公司 | 一种数据处理装置及方法 |
| JP2023011071A (ja) * | 2021-07-11 | 2023-01-23 | 株式会社スクウェア・エニックス | プラン処理プログラムおよびプラン処理システム |
Family Cites Families (53)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2030022A1 (en) * | 1989-11-17 | 1991-05-18 | Brian M. Kelleher | System and method for drawing antialiased polygons |
| US5835693A (en) * | 1994-07-22 | 1998-11-10 | Lynch; James D. | Interactive system for simulation and display of multi-body systems in three dimensions |
| US6348919B1 (en) * | 1995-12-18 | 2002-02-19 | 3Dlabs Inc, Ltd. | Graphics system with optimized use of unified local and frame buffers |
| US6570564B1 (en) * | 1999-09-24 | 2003-05-27 | Sun Microsystems, Inc. | Method and apparatus for rapid processing of scene-based programs |
| US6816750B1 (en) * | 2000-06-09 | 2004-11-09 | Cirrus Logic, Inc. | System-on-a-chip |
| US7079133B2 (en) * | 2000-11-16 | 2006-07-18 | S3 Graphics Co., Ltd. | Superscalar 3D graphics engine |
| US6961055B2 (en) * | 2001-05-09 | 2005-11-01 | Free Radical Design Limited | Methods and apparatus for constructing virtual environments |
| US20050086040A1 (en) * | 2003-10-02 | 2005-04-21 | Curtis Davis | System incorporating physics processing unit |
| US7053901B2 (en) * | 2003-12-11 | 2006-05-30 | Nvidia Corporation | System and method for accelerating a special purpose processor |
| US20050215319A1 (en) * | 2004-03-23 | 2005-09-29 | Harmonix Music Systems, Inc. | Method and apparatus for controlling a three-dimensional character in a three-dimensional gaming environment |
| US8747226B2 (en) * | 2004-07-07 | 2014-06-10 | Nintendo Of America, Inc. | Car-based entertainment system with video gaming |
| US7620530B2 (en) * | 2004-11-16 | 2009-11-17 | Nvidia Corporation | System with PPU/GPU architecture |
| US7609884B1 (en) * | 2004-12-23 | 2009-10-27 | Pme Ip Australia Pty Ltd | Mutual information based registration of 3D-image volumes on GPU using novel accelerated methods of histogram computation |
| KR100632535B1 (ko) | 2004-12-29 | 2006-10-11 | 엘지전자 주식회사 | 이동통신단말기용 삼차원 그래픽 엔진 및 그래픽 제공 방법 |
| EP1846834A2 (en) | 2005-01-25 | 2007-10-24 | Lucid Information Technology, Ltd. | Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction |
| CN1298049C (zh) * | 2005-03-08 | 2007-01-31 | 北京中星微电子有限公司 | 一种图形引擎芯片及其应用方法 |
| US8317618B2 (en) * | 2005-12-15 | 2012-11-27 | At&T Intellectual Property I, Lp | System, method and computer program for enabling an interactive game |
| US7697751B2 (en) * | 2005-12-29 | 2010-04-13 | Graphics Properties Holdings, Inc. | Use of ray tracing for generating images for auto-stereo displays |
| FR2896895B1 (fr) * | 2006-02-01 | 2008-09-26 | Redway Soc Par Actions Simplifiee | Procede de synthese d'une image virtuelle par lancer de faisceaux |
| US8028290B2 (en) | 2006-08-30 | 2011-09-27 | International Business Machines Corporation | Multiple-core processor supporting multiple instruction set architectures |
| EP2140341B1 (en) * | 2007-04-26 | 2012-04-25 | Ford Global Technologies, LLC | Emotive advisory system and method |
| US9329052B2 (en) | 2007-08-07 | 2016-05-03 | Qualcomm Incorporated | Displaying image data and geographic element data |
| US8731256B2 (en) * | 2008-01-31 | 2014-05-20 | The Johns Hopkins University | Automated image analysis for magnetic resonance imaging |
| US8257173B2 (en) | 2008-02-05 | 2012-09-04 | Disney Enterprises, Inc. | System and method for driving artificial intelligence (AI) characters having continuous reevaluation of current goals and navigation path |
| US8390618B2 (en) * | 2008-03-03 | 2013-03-05 | Intel Corporation | Technique for improving ray tracing performance |
| KR20100003518A (ko) | 2008-07-01 | 2010-01-11 | 주식회사 아이리버 | 게임기용 mpu 및 3d 그래픽 프로세서 |
| US8200594B1 (en) | 2008-09-10 | 2012-06-12 | Nvidia Corporation | System, method, and computer program product for accelerating a game artificial intelligence process |
| US9275487B1 (en) * | 2009-04-08 | 2016-03-01 | Pixar Animation Studios | System and method for performing non-affine deformations |
| KR101004110B1 (ko) * | 2009-05-28 | 2010-12-27 | 주식회사 실리콘아츠 | 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩 |
| US8996337B1 (en) * | 2009-07-10 | 2015-03-31 | Nvidia Corporation | Hierarchical position-based dynamics |
| KR101706094B1 (ko) | 2010-01-14 | 2017-02-14 | 삼성전자주식회사 | 로봇용 관절 구동장치 및 이를 포함하는 로봇, 로봇용 관절 구동장치의 케이블 연결방법 |
| US20110242427A1 (en) | 2010-04-01 | 2011-10-06 | Timothy Ramsdale | Method and System for Providing 1080P Video With 32-Bit Mobile DDR Memory |
| US8522254B2 (en) * | 2010-06-25 | 2013-08-27 | International Business Machines Corporation | Programmable integrated processor blocks |
| US10237563B2 (en) | 2012-12-11 | 2019-03-19 | Nvidia Corporation | System and method for controlling video encoding using content information |
| US20140168236A1 (en) * | 2012-12-19 | 2014-06-19 | Qnx Software Systems Limited | Gpu display adjustments |
| US9811775B2 (en) | 2012-12-24 | 2017-11-07 | Google Inc. | Parallelizing neural networks during training |
| US20150106673A1 (en) * | 2013-10-16 | 2015-04-16 | Taiwan Semiconductor Manufacturing Company Ltd. | Method and apparatus for on-the-fly memory channel built-in-self-test |
| US9235871B2 (en) | 2014-02-06 | 2016-01-12 | Oxide Interactive, LLC | Method and system of a command buffer between a CPU and GPU |
| US9327199B2 (en) * | 2014-03-07 | 2016-05-03 | Microsoft Technology Licensing, Llc | Multi-tenancy for cloud gaming servers |
| KR102207562B1 (ko) * | 2014-03-10 | 2021-01-27 | 에스케이하이닉스 주식회사 | 다양한 경로로 신호 입력이 가능한 적층 반도체 장치 및 반도체 시스템 |
| KR102244619B1 (ko) * | 2014-09-30 | 2021-04-26 | 삼성전자 주식회사 | 가속 구조를 생성 및 탐색하는 방법 |
| US20170243403A1 (en) | 2014-11-11 | 2017-08-24 | Bent Image Lab, Llc | Real-time shared augmented reality experience |
| KR102370617B1 (ko) * | 2015-04-23 | 2022-03-04 | 삼성전자주식회사 | 적응적 샘플링을 수행하여 영상을 처리하는 방법 및 장치. |
| US9880005B2 (en) | 2015-07-09 | 2018-01-30 | Invensense, Inc. | Method and system for providing a plurality of navigation solutions |
| US11244225B2 (en) | 2015-07-10 | 2022-02-08 | Samsung Electronics Co., Ltd. | Neural network processor configurable using macro instructions |
| US9443192B1 (en) | 2015-08-30 | 2016-09-13 | Jasmin Cosic | Universal artificial intelligence engine for autonomous computing devices and software applications |
| WO2017086922A1 (en) | 2015-11-17 | 2017-05-26 | Intel IP Corporation | Devices for and methods of beam tracking for 5g high frequency bands |
| US10817802B2 (en) | 2016-05-07 | 2020-10-27 | Intel Corporation | Apparatus for hardware accelerated machine learning |
| CN109716346A (zh) | 2016-07-18 | 2019-05-03 | 河谷生物组学有限责任公司 | 分布式机器学习系统、装置和方法 |
| US10486060B2 (en) | 2016-11-23 | 2019-11-26 | Microsoft Technology Licensing, Llc | Tracking core for providing input to peripherals in mixed reality environments |
| US11256977B2 (en) | 2017-12-29 | 2022-02-22 | Facebook, Inc. | Lowering hardware for neural networks |
| US20190236606A1 (en) | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment |
| US11301951B2 (en) | 2018-03-15 | 2022-04-12 | The Calany Holding S. À R.L. | Game engine and artificial intelligence engine on a chip |
-
2016
- 2016-02-18 US US15/047,556 patent/US11295506B2/en active Active
- 2016-09-16 EP EP24153184.7A patent/EP4332906A3/en active Pending
- 2016-09-16 ES ES16775106T patent/ES2977462T3/es active Active
- 2016-09-16 EP EP16775106.4A patent/EP3349870B1/en active Active
- 2016-09-16 CN CN201680053259.XA patent/CN108025210A/zh active Pending
- 2016-09-16 WO PCT/EP2016/072018 patent/WO2017046354A1/en not_active Ceased
- 2016-09-16 DK DK16775106.4T patent/DK3349870T3/da active
-
2022
- 2022-03-14 US US17/694,254 patent/US11663769B2/en active Active
-
2023
- 2023-05-12 US US18/196,649 patent/US12249018B2/en active Active
-
2025
- 2025-02-13 US US19/053,265 patent/US20250182372A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US11295506B2 (en) | 2022-04-05 |
| DK3349870T3 (da) | 2024-04-22 |
| US20220198736A1 (en) | 2022-06-23 |
| US20170075858A1 (en) | 2017-03-16 |
| US20250182372A1 (en) | 2025-06-05 |
| EP4332906A2 (en) | 2024-03-06 |
| WO2017046354A1 (en) | 2017-03-23 |
| US11663769B2 (en) | 2023-05-30 |
| US20230281908A1 (en) | 2023-09-07 |
| EP4332906A3 (en) | 2024-05-15 |
| US12249018B2 (en) | 2025-03-11 |
| EP3349870A1 (en) | 2018-07-25 |
| EP3349870B1 (en) | 2024-01-24 |
| CN108025210A (zh) | 2018-05-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2977462T3 (es) | Motor de juego en un chip | |
| ES2951758T3 (es) | Realidad virtual colaborativa multiusuario | |
| CN108694738B (zh) | 去耦的多层渲染频率 | |
| ES2907687T3 (es) | Representación de plano de imagen multirresolución dentro de una microarquitectura de procesador gráfico mejorada | |
| ES3006469T3 (en) | Technology to encode 360 degree video content | |
| ES2922054T3 (es) | Soporte de múltiples tasas de refresco en regiones diferentes del visor del panel | |
| ES2924825T3 (es) | Fallo de página y prioridad selectiva | |
| CN108711133B (zh) | 带有早期分层的z的基于图块的立即模式渲染 | |
| ES2974452T3 (es) | Ajuste de la representación gráfica en función de la expresión facial | |
| ES3027615T3 (en) | Memory prefetching in multiple gpu environment | |
| ES2986903T3 (es) | Precisión dinámica para operaciones de cálculo de redes neuronales | |
| CN110634097B (zh) | 具有附加上下文的图形系统 | |
| CN108734630B (zh) | 线程串行化、分布式并行编程、和运行时间扩展 | |
| CN108694684A (zh) | 共享本地存储器分块机制 | |
| TWI894167B (zh) | 用以促進封裝經壓縮資料的設備和方法,及用以促進資料解壓縮的設備和方法 | |
| CN111164654A (zh) | 自适应中心凹形编码器以及全局运动预测因子 | |
| ES2996269T3 (en) | Region based processing | |
| CN112634424B (zh) | 拓扑着色器技术 | |
| CN108694697B (zh) | 从模板印刷缓冲器控制粗糙像素大小 | |
| US11200722B2 (en) | Method and apparatus for viewport shifting of non-real time 3D applications | |
| US20260079879A1 (en) | Non-homogeneous chiplets | |
| CN108694683A (zh) | 写出级生成的包围盒 | |
| CN108734625B (zh) | 通过固定功能着色器库进行基于物理的着色 | |
| WO2018022207A1 (en) | Banking graphics processor shared local memory | |
| CN118576969A (zh) | 网络和渲染感知分割渲染 |