ES2977462T3 - Motor de juego en un chip - Google Patents

Motor de juego en un chip Download PDF

Info

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
Application number
ES16775106T
Other languages
English (en)
Inventor
Cevat Yerli
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Calany Holding SARL
TMRW Group IP
Original Assignee
TMRW Foundation IP and Holding SARL
TMRW Foundation IP SARL
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
Application filed by TMRW Foundation IP and Holding SARL, TMRW Foundation IP SARL filed Critical TMRW Foundation IP and Holding SARL
Application granted granted Critical
Publication of ES2977462T3 publication Critical patent/ES2977462T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/005General purpose rendering architectures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/06Ray-tracing
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10WGENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
    • H10W90/00Package configurations
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/20Features 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/203Image generating hardware
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/20Features 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/209Features 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
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10WGENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
    • H10W70/00Package substrates; Interposers; Redistribution layers [RDL]
    • H10W70/60Insulating or insulated package substrates; Interposers; Redistribution layers
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10WGENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
    • H10W70/00Package substrates; Interposers; Redistribution layers [RDL]
    • H10W70/60Insulating or insulated package substrates; Interposers; Redistribution layers
    • H10W70/62Insulating or insulated package substrates; Interposers; Redistribution layers characterised by their interconnections
    • H10W70/63Vias, e.g. via plugs
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10WGENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
    • H10W72/00Interconnections or connectors in packages
    • H10W72/071Connecting or disconnecting
    • H10W72/072Connecting or disconnecting of bump connectors
    • H10W72/07251Connecting or disconnecting of bump connectors characterised by changes in properties of the bump connectors during connecting
    • H10W72/07254Connecting or disconnecting of bump connectors characterised by changes in properties of the bump connectors during connecting changes in dispositions
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10WGENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
    • H10W72/00Interconnections or connectors in packages
    • H10W72/20Bump connectors, e.g. solder bumps or copper pillars; Dummy bumps; Thermal bumps
    • H10W72/241Dispositions, e.g. layouts
    • H10W72/247Dispositions of multiple bumps
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10WGENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
    • H10W90/00Package configurations
    • H10W90/20Configurations of stacked chips
    • H10W90/297Configurations of stacked chips characterised by the through-semiconductor vias [TSVs] in the stacked chips
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10WGENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
    • H10W90/00Package configurations
    • H10W90/701Package configurations characterised by the relative positions of pads or connectors relative to package parts
    • H10W90/721Package configurations characterised by the relative positions of pads or connectors relative to package parts of bump connectors
    • H10W90/722Package configurations characterised by the relative positions of pads or connectors relative to package parts of bump connectors between stacked chips
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10WGENERIC PACKAGES, INTERCONNECTIONS, CONNECTORS OR OTHER CONSTRUCTIONAL DETAILS OF DEVICES COVERED BY CLASS H10
    • H10W90/00Package configurations
    • H10W90/701Package configurations characterised by the relative positions of pads or connectors relative to package parts
    • H10W90/721Package configurations characterised by the relative positions of pads or connectors relative to package parts of bump connectors
    • H10W90/724Package 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)

  1. REIVINDICACIONES
    i. 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, y
    un 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
ES16775106T 2015-09-16 2016-09-16 Motor de juego en un chip Active ES2977462T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) 网络和渲染感知分割渲染