09 diciembre 2010

Tema 5. Coprocesadores para gráficos: PPU, RTPU...


                    Los coprocesadores gráficos son microprocesadores que se encargan básicamente de realizar tareas de suplemento del GPU para facilitar el procesado y que éste logre llegar a la realización de las tareas en tiempo real.

                   Actualmente todos los ordenadores tienen algún tipo de GPU que permite liberar a la CPU de los cálculos necesarios para generar gráficos 3D, hoy en día se ha añadido más hardware de propósito específico, especialmente para juegos. La propuesta más importante ha sido la de un coprocesador físico normalmente conocido como PPU (Pysics Processing Unit).

              Una unidad de procesamiento físico (PPU) es un microprocesador dedicado diseñado para procesar los cálculos de la física, especialmente en los motores de física en los videojuegos. Ejemplos de cálculos que engloba una PPU pueden incluir dinámica de cuerpos rígidos, dinámica de cuerpos blandos, detección de colisiones, dinámica de fluidos, simulación de pelo y ropa, análisis de elementos finitos, y rotura de objetos. La idea es que procesadores especializados reduzcan el tiempo de las tareas de la CPU de un ordenador.

08 diciembre 2010

Tema 5. Benchmarks y comparativa entre GPUs


                    Para evaluar el rendimiento de un sistema gráfico se utilizan benchmarks, software real o "de juguete" diseñado para probar la eficiencia del sistema a la hora de generar los gráficos. Un ejemplo de benchmark es el SPECviewperf11, que ya comentamos en el blog. Hoy en día, los benchmarks sintéticos no interesan por su baja fiabilidad, de modo que se usa software real para analizar el rendimiento del sistema. Cuando hablamos de "software real" estamos diciendo que los mejores benchmarks son juegos actuales que requieren sacar lo mejor de las tarjetas gráficas, por ejemplo, se usa el Crysis, el Half Life 2, Mass Effect o el Call of Duty como benchmarks, por ejemplo analizando los frames por segundo en diferentes configuraciones, resolución de pantalla, filtrados, profundidad de color...

              Es importante aclarar que siempre se evalúa parte de un sistema, es decir, el resto de componentes, tanto hardware como software, también afectarán a los resultados obtenidos. No sólo se está evaluando la tarjeta gráfica, sino también el resto de componentes del sistema, y sobre todo, la relación entre todos ellos.

                     Hace poco Nvidia ponía en circulación la GeForce GTX 580, la mejor tarjeta gráfica simple del mercado, con un rendimiento altísimo y con la ventaja añadida de su silenciosa tarjeta. Ahora Nvidia ha vuelto a sorprendernos con su GTX 570, que proporciona las últimas prestaciones a un precio demencial: unos 350 $. Está claro que Radeon va a tener que emplearse a fondo para contrarrestar a Nvidia.

07 diciembre 2010

TEMA 5. Evaluación de rendimiento en arquitecturas para gráficos y multimedia



a. (B) Escoger una evaluación de rendimiento o una comparativa reciente y analizarla/criticarla.

b. (B) Coprocesadores para gráficos: PPU, RTPU, etc.

c. (E) Estudio de una arquitectura de altas prestaciones utilizada para aplicaciones gráficas: cluster, Grid, FPGA, ASIC, etc.

d. (E) Evaluación de rendimiento de la tarjeta gráfica como coprocesador de la CPU (benchmarks para CUDA).

e. (E) Detección de cuellos de botella.

04 diciembre 2010

Tema 4. Modelos de programación para el Cell


               El procesador Cell tiene unas excelentes prestaciones y será un gran procesador, siempre y cuando se le pueda sacar todo el rendimiento que de él se espera, pero la pregunta está en si eso será fácil para los desarrolladores.

             Como ya hemos comentado el chip Cell tiene 8 núcleos de procesamiento (Synergistic Processor Element o SPE). Cada uno de los SPE tiene una memoria única de 256KB, 128 registros con una anchura de 128 bits y elementos de ejecución de 128bits, se puede decir que cada SPE es una máquina de 128bits. Con esta capacidad de procesamiento tenemos que cada SPE puede ejecutar 2 Double-Float, 4 Floats o Long integers, ocho integers... etc, cada uno en un solo ciclo de reloj. Además cada SPE contiene siete elementos de ejecución de los que solamente dos podrán estar activos a la vez.

             Pero esta arquitectura tiene un inconveniente, y es que cada SPE solamente puede acceder a sus 256 KB de memoria y no verá nada más allá. Para pedir una palabra fuera de esos 256 KB se debe acceder a un DMA conectado a un BUS llamado Element Interconnect Bus (EIB). Esto presenta un problema a la hora de procesar grandes cantidades de información, pues hay que optimizar el "troceado" para que no haya pérdida de rendimiento.

03 diciembre 2010

Tema 4. Comparativa entre videoconsolas


                 La Guerra de consolas sigue causando estragos en el mundo de los videojuegos. Andamos ya por la séptima generación de videoconsolas, camino de la octava, y desde que las consolas existen, siempre ha habido una competición por ver quién de todas se lleva el gato al agua.

               Desde que la PlayStation 3 llegó en el mercado para destronar a la Xbox 360 en 2006, los jugadores debaten acerca de qué máquina es superior. Antiguamente cada consola tenía sus títulos propios, pero hoy en día vemos la portabilidad a todas las consolas por parte de una grandísima mayoría de las distribuidoras de juegos. A pesar de ello, y de que los títulos de consola exclusivos se han vuelto menos comunes, los jugadores están convencidos de que su sistema de elección es el mejor.

                Además de PS3 y Xbox 360, contamos con la Wii como tercera en discordia, si bien, la hemos apartado de este estudio técnico, puesto que sus capacidades hardware no son comparables con las otras dos. Según una entrevista con el diseñador de juegos de Nintendo, Shigeru Miyamoto, el concepto de la Wii se desarrolló teniendo como objetivo lograr una nueva forma de interacción con el jugador: "El concepto general era que el poder no lo es todo para una consola. Demasiadas consolas poderosas no pueden coexistir. Es como tener sólo dinosaurios feroces. Podrían luchar entre ellos y adelantar su propia extinción". La consola de Nintendo basa su fuerza en la diversión de los juegos, sus innovadores mandos y un precio muy competitivo, que se puede permitir por tener un hardware más sencillo que sus otras dos grandes rivales. 

02 diciembre 2010

Tema 4. Comparativa entre el Cell y el Xenon


                  La idea de una videoconsola es jugar a videojuegos. Los desarrolladores se tienen que preocupar de qué sistema es más rápido, que hardware es mejor y lo que eso significa para los juegos que ellos desarrollan. Pero, para el usuario final, que la Xbox 360 tenga una GPU más rápida o que el procesador de la PlayStation 3 sea el mejor invento desde el pan de molde, realmente no importa. Al final del día, son los juegos y la sensación global lo que vende las consolas. Puedes tener el mejor hardware del mundo, pero si los juegos y la experiencia no están ahí, no sirve de nada.

            Las consolas de última generación han traído dos novedosos procesadores que han introducido importantes modificaciones respecto a lo que se veía hasta ahora. La Xbox 360 estrena el flamante procesador Xenon, del que hablamos en este blog. Por su parte, la PlayStation 3 lleva el procesador Cell desarrollado por Sony, IBM y Toshiba.

01 diciembre 2010

Tema 4. El procesador Xenon


                       Xenon es un microprocesador multinúcleo diseñado por IBM para la consola Xbox 360 de Microsoft. La XBOX 360 trae de serie las siguientes especificiaciones técnicas: 

- CPU Procesador Xenon con 3 núcleos de procesamiento paralelos basados en PowerPC con 2 hilos de instrucción por núcleo (6 hilos en total). Cada núcleo corre a 3,2 GHz 
- Características del CPU: Tres núcleos de procesamiento simétricos, 1 MB caché Nivel 2 
- GPU: ATI "Xenos", diseño custom desarrollado por ATI y Microsoft Basado en el núcleo ATI Radeon R500. Primera GPU en utilizar la nueva arquitectura de Shaders Unificados. 500 MHz. 
- VRAM: Integrada al GPU y basada en la tecnología EDRAM (más memoria compartida asignable por software). 10 Mb EDRAM 
- RAM: 512 MB GDDR3 a 700 MHz 

TEMA 4. Arquitectura de videoconsolas







e. (E) Compiladores para el Cell o el Xenon.

f. (E) Sistemas operativos para videoconsolas.

g. (E) BlueRay.


29 noviembre 2010

Tema 3. Comparación de PCI‐Express con PCI y AGP




Peripheral Component Interconnect (PCI)

                     El bus PCI (Peripheral Component Interconnect o "Interconexión de Componentes Periféricos") básicamente es un bus de ordenador estándar para conectar dispositivos periféricos directamente a su placa base. Estos dispositivos pueden aparecer como circuitos integrados ajustados en la placa base o tarjetas de expansión que se ajustan en conectores. Es común en PCs, donde ha desplazado al ISA como bus estándar, pero también se emplea en otro tipo de ordenadores.

                     A diferencia de los buses ISA, el bus PCI permite configuración dinámica de un dispositivo periférico. En el tiempo de arranque del sistema, las tarjetas PCI y el BIOS interactúan y negocian los recursos solicitados por la tarjeta PCI. Esto permite asignación de IRQs y direcciones del puerto por medio de un proceso dinámico diferente del bus ISA, donde las IRQs tienen que ser configuradas manualmente usando jumpers externos. Las últimas revisiones de ISA y el bus MCA de IBM ya incorporaron tecnologías que automatizaban todo el proceso de configuración de las tarjetas, pero el bus PCI demostró una mayor eficacia en tecnología "plug and play". Aparte de esto, el bus PCI proporciona una descripción detallada de todos los dispositivos PCI conectados a través del espacio de configuración PCI.


28 noviembre 2010

Tema 3. Interrupciones MSI


                      Las interrupciones (también conocidas como interrupción hardware o petición de interrupción o IRQ) es una señal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación. Una interrupción supone la ejecución temporaria de un programa, para pasar a ejecutar una "subrutina de servicio de interrupción", que pertenece al BIOS (Basic Input Output System). Las interrupciones surgen de las necesidades que tienen los dispositivos periféricos de enviar información al procesador principal de un sistema de computación.

                      De este modo, un dispositivo utiliza una interrupción cuando necesita detener el proceso que está realizando la CPU para informale de que él, por su parte esta haciendo algo. Si dos dispositivos utilizan la misma interrupción, se produce un conflicto, el ordenador no sabe qué elemento intenta avisarle y suelen aparecer problemas de funcionamiento.

26 noviembre 2010

Tema 3. Técnicas de gestión de E/S


                   Los dispositivos de entrada y salida (E/S) son aquellos que permiten la comunicación entre la computadora y el usuario. El papel que juegan los dispositivos periféricos del ordenador es esencial; sin tales dispositivos éste no sería totalmente útil. A través de los dispositivos periféricos podemos introducir a la computadora datos que nos sea útiles para la resolución de algún problema y por consiguiente obtener el resultado de dichas operaciones, es decir; poder comunicarnos con el ordenador.

                  La computadora necesita de entradas para poder generar salidas y éstas se dan a través de dos tipos de dispositivos periféricos existentes:
- Dispositivos periféricos de entrada.
- Dispositivos periféricos de salida.

24 noviembre 2010

Tema 3. Análisis de la jerarquía de memoria de Intel Pentium Pro


                 La arquitectura Intel Pentium Pro es la sexta generación de arquitectura x86 de los microprocesadores de Intel, cuya meta era remplazar al Intel Pentium en toda la gama de aplicaciones, pero luego se centró como chip en el mundo de los servidores y equipos de sobremesa de gama alta. Posteriormente Intel lo dejó de lado a favor de su gama de procesadores de altas prestaciones llamada Xeon. 

                 Pentium Pro fue puesto a la venta en noviembre de 1995, dos años después de la salida de Pentium. En 1997 fue reemplazado cuando Intel estrenó Pentium II. 

                 Pentium Pro tiene una dirección virtual de 32 bits, hoy en día se queda un poco corto, pues las nuevas arquitecturas tienen una dirección virtual mayor. Las direcciones físicas son de 32 bits. Esta máquina permite páginas grandes (4KB, 4MB), lo que se puede usar para cuestiones como el sistema operativo o para tener un buffer de bloques. Las páginas grandes evitan que se asignen muchas entradas a un simple objeto que estará siempre presente.

23 noviembre 2010

Tema 3. Tecnologías de memoria DRAM utilizadas en tarjetas gráficas y videoconsolas


                Toda arquitectura (tanto gráfica como de propósito general) tiene una memoria principal. Al aparecer arquitecturas dedicadas a gráficos se provocó un avance, y una especialización de memorias dedicadas a gráficos. En este post daré un repaso leve a distintas memorias DRAM para tarjetas gŕaficas y comentaré los tipos de memoria de la actual generación de consolas.

22 noviembre 2010

Tema 3. Técnicas de optimización para la memoria caché


                   Para optimizar el tiempo de acceso de la memoria caché, se pueden hacer varias cosas: reducir la penalización por fallo, reducir la tasa de fallos, aprovechar el paralelismo y reducir el tiempo de acierto (latencia).

Reducir la penalización por fallo
                   Para lograr este objetivo se trabaja con cachés multinivel, cachés de víctimas, cachés no bloqueantes, se hace uso del Write Merging y la técnica Palabra crítica primero / rearranque rápido.

21 noviembre 2010

Tema 3. ¿Cómo afectan las decisiones de organización de la caché a su rendimiento?


                La memoria caché es una memoria pequeña y muy rápida que se utiliza para mejorar el rendimiento de los programas. En lugar de acceder a la memoria principal con lentas lecturas y escrituras, se usan algoritmos que predicen las zonas de la memoria principal con mayor probabilidad de ser direccionadas en el futuro próximo, y se llevan a la caché. El acierto a la hora de elegir estas políticas determinará una mayor o menor efectividad.

       Las decisiones de organización de la memoria caché son varias. Tenemos diferentes políticas de emplazamiento: totalmente asociativa, de correspondencia directa, asociativa de dos vías, asociativa de cuatro vías, etc…

20 noviembre 2010

Tema 3. ¿Cómo se traduce de dirección virtual a dirección física?


Memoria Virtual
                   La Memoria Virtual es un concepto que permite al software usar más memoria principal que la que realmente posee el ordenador. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria física (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro, que es mucho más lento, pero también más grande y barato.

Las dos razones por las que se utiliza memoria virtual son:

compartir la memoria eficientemente y sin peligros entre múltiples programas.

- eliminar el inconveniente de tener un espacio de memoria principal pequeño y limitado, ya que puede ocurrir que los programas necesiten más memoria que la disponible en memoria principal.

13 noviembre 2010

Tema 2. Arquitectura de GPU Fermi: NVIDIA GeForce GTX 580 (GF110)


               Recientemente NVIDIA ha anunciado el lanzamiento de la familia de GPU "Serie 500", con la salida al mercado de la GeForce GTX 580. Basada en la renovada arquitectura Fermi, está pensada para competir con la serie de ATI, AMD Radeon HD 6000. Se trata de la CPU DX11 "más rápida del planeta", que dispondrá de un nuevo diseño de refrigeración "vapor chamber" que permitie un funcionamiento más silencioso y una temperatura inferior a la alcanzada por la serie GeForce 400.

                El chip Fermi incluye 512 procesadores de stream, agrupados en 16 clústers de multiprocesadores de stream (cada uno con 32 núcleos CUDA), y está manufacurado por TSMC en 40 nm. La tarjeta gráfica Nvidia GeForce GTX 580 será la primera de la Serie Nvidia GeForce 500 en usar un chip completamente basado en la renovada arquitectura Fermi, con todos los 16 clústers de multiprocesadores de stream y los seis controladores de memoria de 64 bits activos. La nueva GPU GF110 ha sido mejorada con filtros FP16 a toda velocidad (la anterior generación GF100 GPU sólo podía alcanzar media velocidad FP16) y unidades mejoradas de z-culling.

11 noviembre 2010

Tema 2. Arquitectura de procesador Intel Core i7

                 Intel Core i7 es una familia de procesadores de cuatro núcleos de la arquitectura Intel x86-64. Los Core i7 son los primeros procesadores que usan la microarquitectura Nehalem de Intel y es el sucesor de la familia Intel Core 2. El identificador Core i7 se aplica a la familia inicial de procesadores con el nombre clave Bloomfield. Esta nueva generación de procesadores refleja los recientes e importantes avances en tecnología de Intel.

                Los procesadores Core i7 están basados en la micro-arquitectura Intel Nehalem. Cado uno de estos chips ofrece cuatro núcleos y velocidades que van de los 2,66GHz a los 3,20GHz. Algunos de estos procesadores forman la serie Extreme Edition, como el Core i7 965 Extreme Edition tiene una velocidad de 3,20GHz y tecnología QPI (QuickPath Interface) de 6,4GT/s que es su principal diferenciador.

10 noviembre 2010

Tema 2. Utilización del multithreading en las arquitecturas para gráficos y multimedia



                   El multhreading es la capacidad del Sistema Operativo de ejecutar las diferentes partes de un programa (threads o hilos) simultáneamente. En sistemas operativos, un thread es similar a un proceso en que ambos hilos representan una secuencia simple de instrucciones ejecutada en paralelo con otras secuencias. Los hilos nos permiten dividir un programa en dos o más tareas que corren simultáneamente, por medio de la multiprogramación.

                    Un ejemplo de la utilización de hilos es tener un hilo atento a la interfaz gráfica (iconos, botones, ventanas), mientras otro hilo hace una larga operación internamente. De esta manera el programa responde de manera más ágil a la interacción con el usuario. También pueden ser utilizados por una aplicación servidora para dar servicio a múltiples clientes.


07 noviembre 2010

Tema 2. Predictores de salto multinivel y adaptativos


                 El pipelining ofrece una gran ventaja aumentando la velocidad del procesador, pero desafortunadamente, la presencia de instrucciones de saltos condicionales en el programa en ejecución reduce fuertemente este aumento de la capacidad de procesamiento.

                 Esto se debe a que los saltos condicionales se resuelven (el salto es tomado o no) en las últimas etapas. Si el salto se realiza, debe vaciarse la mayoría de las etapas del pipeline, y completarse nuevamente con las instrucciones que siguen a la de la dirección de salto, lo cual significa una pérdida de tiempo. Esta pérdida de beneficio en el pipeline se realiza cada vez que un salto condicional ingresa al procesador, es decir por cada salto dinámico del código en ejecución. En el caso de los saltos incondicionales, no existe este problema, dado que se conoce de antemano la dirección de salto y no existe duda alguna de que éste será tomado. Sin embargo, el hardware del microprocesador debe identificar este tipo de instrucciones antes de que ingresen a la etapa DECODE. Para reducir la pérdida de eficacia del pipeline ante la presencia de saltoscondicionales se introdujo el concepto de Predicción de Salto (Branch Prediction).


05 noviembre 2010

Tema 2. Funcionamiento de los algoritmos de Pizarra y Tomasulo, con códigos ejemplo

Algoritmo de Tomasulo

                 Para reducir al máximo el número de paradas por riesgos estructurales y de datos, la planificación dinámica reordena las instrucciones en tiempo de ejecución. La emisión de instrucciones sigue en orden, pero permite la lectura de operandos y la ejecución fuera de orden. Existen para ello diferentes algoritmos de planificación, aunque casi todos derivan de los dos más conocidos:

- Algoritmo de la Pizarra
- Algoritmo de Tomasulo


Algoritmo de Pizarra

                El algoritmo de Pizarra es un método centralizado para programar dinámicamente un pipeline, de modo que las instrucciones se puedan ejecutar fuera de orden cuando no hay conflictos y el hardware está disponible. En una pizarra, las dependencias de datos de todas las instrucciones se registran. Las instrucciones se ponen en marcha sólo cuando la pizarra determina que no hay conflictos con instrucciones previamente manejadas o incompletas. Si una instrucción se detiene porque es inseguro continuar, la tabla monitorea el flow de las instrucciones ejecutándose hasta que todas las dependencias se hayan resuelto antes de que se maneje la instrucción parada.

04 noviembre 2010

Tema 2. Técnicas de resolución de riesgos en procesadores segmentados utilizando como ejemplo la arquitectura MIPS




             Haciendo bueno el dicho del gran emperador romano Julio César, "Divide y Vencerás", seguiremos su táctica de conquista para abordar este tema. Comentaremos primero qué es la segmentación, para pasar luego brevemente por los procesadores MIPS y, finalmente, terminaremos explicando con los riesgos de procesadores segmentados y las soluciones posibles.

La segmentación y sus problemas


              A finales de los años 90 aparecieron en el mundo de la informática los llamados microprocesadores supersegmentados. Estos microprocesadores se caracterizan por utilizar pipelines muy segmentadas, para tratar de alcanzar frecuencias lo más altas posibles. Los microprocesadores no ejecutan instrucciones “de una vez”, sino que dividen el proceso de ejecución en varias partes, que son ejecutadas una detrás de otra. Esto se llama “pipelining” y es un principio usado en muchos campos de la informática, como el envío de paquetes en redes, la ejecución de instrucciones en procesadores… Para ilustrar esta idea, podemos poner el ejemplo de una manzana. Imaginemos que una persona quiere comerse una manzana. Podríamos ver esta acción como una serie de pasos que deben realizarse en orden: primero se lava la fruta, luego se pela la piel, después se corta la manzana en partes más pequeñas, y finalmente se comen los trozos.


03 noviembre 2010

Tema 2. Diferencias entre arquitecturas y repertorios de instrucciones RISC y CISC


             Una arquitectura define el modo de trabajar del microprocesador, el repertorio de instrucciones y cómo estas se implementan en la práctica. RISC y CISC son dos arquitecturas para microprocesadores.

             Los CISC (Complex Instruction Set Computer) pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de las computadoras personales del planeta. La utilización del término CISC comenzó tras la aparición de los procesadores RISC como nomenclatura despectiva por parte de los defensores/creadores de éstos últimos.

              Las arquitecturas CISC, tienen repertorios de instrucciones mucho más complicados que se traducen en diseños de la ruta de datos mucho más complejos, su conjunto de instrucciones se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC. Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones.


TEMA 2: Arquitectura de procesadores



a. (B) Diferencias entre arquitecturas y repertorios de instrucciones RISC y CISC.

b. (B) Explicación en detalle de las técnicas de resolución de riesgos en procesadores segmentados utilizando como ejemplo la arquitectura MIPS.

c. (E) Explicación en detalle del funcionamiento de los algoritmos de Pizarra y Tomasulo utilizando códigos ejemplo.

d. (B) Explicación en detalle de los predictores de salto multinivel y adaptativos.

e. (E) Explicación en detalle del funcionamiento de Tomasulo Especulativo.

f. (B) Utilización del multithreading en las arquitecturas para gráficos y multimedia.

g. (B) Análisis de una arquitectura de procesador de los dos últimos años diferente de las vistas en clase.

h. (B) Análisis de una arquitectura de GPU de los dos últimos años diferentes de las vistas en clase.

i. (E) Comparación exhaustiva de ambas arquitecturas.

j. (E) Modelos de programación de GPUs, comparación con los modelos tradicionales de CPUs, etc.

k. (E) Programación de GPUs con Cg.

l. (E) Programación de GPUs con CUDA.

23 octubre 2010

Tema 1. Experimentación con SPECViewperf11

El benchmark SPECviewperf

            Un benchmark es una técnica utilizada para realizar una evaluación de rendimiento de un sistema o uno de sus componentes. 
          
             El grupo SPEC (Standard Performance Evaluation Corporation), es una organización sin ánimo de lucro cuyo fin es "producir, establecer, mantener y aprobar un conjunto de estándares" de benchmarks de rendimiento para ordenadores. Sus miembros incluyen a Apple Inc., Dell, IBM, Intel Corporation, Microsoft, Sun Microsystems... y otros vendedores de computadoras, integradores de sistemas, universidades, grupos de investigación, publicadores y consultores de todo el mundo. Tiene dos objetivos: crear un benchmark estándar para medir el rendimiento de computadoras y controlar y publicar los resultados de estos tests. 

             Queríamos experimentar y por ello, desde la propia página oficial de SPEC, descargamos una versión gratuita del benchmark SPECviewperf 11, lanzado en junio de 2010. Se trata de un software de evaluación de rendimiento de gráficos totalmente nuevo, que pone a prueba el comportamiento 3D global del sistema bajo OpenGL y otras interfaces de programación (APIs).

22 octubre 2010

Tema 1. Evolución de monitores y displays


               El monitor de computadora o pantalla de ordenador, aunque también es común llamarlo «pantalla», es una especie de televisión, donde se muestran los datos al usuario: documentos, imágenes, texto, juegos, películas. Técnicamente, el monitor es un dispositivo de salida que, mediante una interfaz, muestra los resultados del procesamiento de una computadora.

               El monitor es el principal periférico de salida de una computadora. Para intercomunicarse con el ordenador, se conectan a través de una tarjeta gráfica conocida con el nombre de adaptador o tarjeta de vídeo. La imagen que observamos en los monitores está formada por una matriz de puntos de luz. Cada punto de luz reflejado en la pantalla es denominado como un píxel.

               Se llama visualizador, o display en inglés, a un dispositivo de ciertos aparatos electrónicos que permite mostrar información al usuario, creado a partir de la aparición de calculadoras, cajas registradoras e instrumentos de medida electrónicos en los que era necesario hacerlo. Los primeros visualizadores, similares a los de los ascensores, se construían con lámparas que iluminaban las leyendas. Al permitir mostrar distintas informaciones, ya se puede hablar con propiedad de visualizadores.


17 octubre 2010

Tema 1. Evolución de videojuegos (VII)


La última década y la actualidad

                  En esta última década, desde 2000 hasta nuestros días, la forma de jugar sigue cambiando. Hoy en día la industria de los videojuegos factura más dinero que la música y el cine juntos. Si al principio los juegos se limitaban a mainframes universitarios y más tarde se movían principalmente por los salones de recreativas, en estos últimos años, las tendencias son:


16 octubre 2010

Tema 1. Evolución de videojuegos (VI)



La Siguiente Generación

                  Algunos consideran que el paso de los cartuchos a CD-ROMs marca el final de la Edad Moderna y el comienzo de la Siguiente Generación de videojuegos. También se considera que el paso de las 2D a las 3D es la línea divisoria. O que la entrada de la Sega Saturn y de la Play Station al mercado, suponen el punto de inflexión, al comenzar a crearse videojuegos más maduros, destinados a un público más adulto. Estamos hablando de títulos como Resident Evil, Tomb Raider, Final Fantay VII, Metal Gear Solid y Silent Hill, cuya maduración narrativa impresionó a las masas.

               La quinta generación de videoconsolas, 32 y 64 bits, está marcada por el uso de CDs y juegos totalmente en 3D. "Super Mario 64" en la Nintendo 64, "Crash Bandicoot" en la Play Station, "Sonic Adventure" en la Dreamcast y "Tomb Raider" en la Saturn (y más tarde en la PSX también) son ejemplos excelentes de esta tendencia. Abrieron la puerta de la industria a juegos más complejos y nuevos géneros. Juegos como "GoldenEye 007", "The Legend of Zelda: Ocarina of Time" o "Soul Calibur" no se parecían nada a ningún shoot-em-ups, RPGs o juegos de lucha anteriores.

15 octubre 2010

Tema 1. Evolución de videojuegos (V)



El Crash de los Videojuegos de 1983

            A finales de 1983, la industria experimentó un terrible hundimiento con pérdidas más severas que en el crash de 1977. Fue el "Crash de los videojuegos", al igual que la bancarrota de cantidad de compañías que producían ordenadores personales en Norte América y videoconsolas, entre finales de 1983 y principios de 1984. Esto llevó al fin de la considerada "segunda generación" de juegos de videoconsola.

              Hay una serie de factores que contribuyeron al crash. En primer lugar, la producción de un montón de juegos malos que llenaron el mercado, o pobremente concebidos como “E.T. the Extra-Terrestrial” y "PacMan" de Atari. Atati mató a la gallina para sacarle los huevos de oro y se quedó sin nada. Presumiendo que la fórmula "juego de éxito + consola de éxito = millones en ganancias" y pretendiendo aprovechar la campaña navideña para disparar más las ventas, tomaron un prototipo inacabado del PacMan y lo lanzaron al mercado. En esa misma época, se frotaban las manos y estaban confiados de que con el gran recibimiento de la película de Spielberg, el juego "E.T. the Extra-Terrestrial" explotaría también el mercado y les daría grandísimos beneficios. El juego de E.T. fue el mayor fracaso de la historia de los videojuegos. Le costó a Atari millones en cartuchos sin vender y no sólo eso, dañó muchísimo su imagen de cara al consumidor.


14 octubre 2010

Tema 1. Evolución de videojuegos (IV)



Años 80

Llegó la década de los ochenta. La Edad Dorada de los Juegos de Arcade llegó a su máximo auge, con muchos juegos con tecnología innovadora y que definieron géneros. Hasta este momento, los videojuegos aparecían principalmente en máquinas arcade y consolas para el hogar. Sin embargo, la rápida evolución de los ordenadores personales en los 70 y 80 permitió a quienes los tenían programar juegos simples. Pronto se formaron grupos de gente interesada en este hobby de programar en los nuevos ordenadores, y como consecuencia de esto siguió un gran software de juegos.

Pronto muchos de estos juegos (al principio clones de los clásicos de mainframe como Star Trek y luego clones de juegos de arcade populares) fueron distribuidos por distintos medios, como la impresión del código fuente del juego en libros (tal como el BASIC Computer games de David Ahl’s), revistas (Creative Computing), y boletines informativos, que permitían a los usuarios teclear el código ellos mismos. Los primeros diseñadores de juegos encontrarían el código para ordenador de sus juegos –sobre el cual nunca ellos habían pensado en copyright- publicado en libros y revistas, con su nombre quitado. Las primeras computadoras personales de Apple, Commodore, Tandy y otros tenían muchos juegos que la gente introducía. Otros canales de distribución eran el correo físico y la venta de disquetes floppy, cintas de cassette y cartuchos ROM.


13 octubre 2010

Tema 1. Evolución de videojuegos (III)



Segunda generación (1977-1983)

En las primeras consolas el código para uno o más juegos se metía en microchips usando lógica discreta, y no se podían añadir juegos adicionales. A mediados de los 70, los juegos salían en cartuchos. Los programas se quemaban en chips ROM que se montaban dentro de carcasas de plástico que podían engancharse a huecos en la consola. Cuando se conectaba un cartucho, el microprocesador de propósito general de la consola leía la memoria del cartucho y corría el programa que hubiera almacenado allí. En lugar de estar limitados a una pequeña selección de juegos que venían con la caja, los clientes podían coleccionar librerías de cartuchos de juegos. La primera consola en usar el formato de cartuchos ROM fue la Video Entertainment System (VES) de Fairchild, lanzada en 1976.


12 octubre 2010

Tema 1. Evolución de videojuegos (II)



Años 70: La Edad Dorada

En esta década, el desarrollo de videojuegos se repartió en varias plataformas como arcades (máquinas recreativas), ordenadores universitarios, sistemas de videojuegos de mano, y ordenadores personales.

A finales de los años 70, se considera que comenzó la Edad Dorada de los videojuegos, que fue cuando el mundo comenzó a darse cuenta de lo que eran estos dispositivos. Antes de que Ralph Baer y Nolan Bush llevaran los videojuegos a los hogares de la gente y a las charlas en cada esquina, estos sistemas eran tan sólo conceptos abstractos y experimentos. Fue en esta época cuando los videojuegos comenzaron a dejar su huella en la sociedad y la cultura…


11 octubre 2010

Tema 1. Evolución de videojuegos (I)


 Tras terminar la Segunda Guerra Mundial con todas las investigaciones realizadas y avances en el campo de la computación, T. Goldsmith y Estle Ray Mann conciben la primera idea de videojuego. En 1947 patentaron un sistema electrónico de juego que simulaba el lanzamiento de misiles. Se basaba en las pantallas de radar del ejército. Funcionaba con válvulas y una pantalla de rayo catódicos. Permitía ajustar la velocidad y la curva del disparo, pero los objetivos estaban sobreimpresionados, no había movimiento de vídeo en la pantalla. No se considera videojuego, pero se dice que fue la primera idea.



07 octubre 2010

Tema 1. Evolución de APIs y entornos de programación



                  La API, siglas en inglés para interfaz de programación de aplicaciones, es el lenguaje que comunica un sistema operativo, aplicación o biblioteca con un programa. La API es un conjunto de funciones definidos en bibliotecas (llamadas DLL) que permiten que un programa corra en cierto sistema operativo y hace posible que un determinado programa, que se ejecuta o funciona bajo dicho sistema operativo o plataforma, pueda realizar peticiones y utilizar al propio sistema operativo y también a otros programas existentes.


04 octubre 2010

Introducción



        Cada día llegamos a casa y al sentarnos un rato a saborear con gusto el calor del hogar, no pensamos en la distribución de las habitaciones, el plano de la vivienda, la ubicación de pilares y columnas de sustento, cómo se coloca ladrillo a ladrillo una pared, cómo se levanta paso por paso un piso... simplemente, damos uso a nuestra casa; pero realmente hay detrás un diseño invisible, un análisis, unos estudios, una ciencia, una técnica, un arte, una estructura que hace todo eso posible... una arquitectura.

      Del mismo modo, desde que uno tiene memoria, puede recordarse a sí mismo jugando con videoconsolas, interaccionando con computadoras, ordenadores, teléfonos móviles... pasando una divertida tarde con una película de animación, disfrutando un juego de realismo cautivante, un sonido envolvente, y es entonces, ahora, cuando te preguntas: ¿y cómo se generan los gráficos en mi pantalla? Ese es el asunto que se trata aquí, en este blog: la arquitectura para gráficos y multimedia.

          La arquitectura para gráficos es el conjunto de técnicas que indican cómo se construyen los gráficos 2D o 3D por computador. Convertir una geometría de vértices y triángulos tridimensionales, aplicando operaciones geométricas y mediante el proceso de rasterizado, en una imagen bidimensional que podemos visualizar en nuestra pantalla.

          Un tema fascinante, en el que nos adentramos en este blog con mucha curiosidad por descubrir a fondo cómo funciona ésta arquitectura, sin duda alguna, diferente, tan peculiar y sorprendente...