
La idea de potencia
Con este documento planeo empezar una serie de breves artículos sobre el rendimiento de los sistemas en general. Cuando yo era pequeño, digamos nueve años, no tenía la noción de potencia respecto a una máquina en mi mente. No sabía que había máquinas más potentes o rápidas que otras, vídeos o televisiones mejores que otros, o incluso tostadoras. Pero vivimos en un mundo tecnológico donde hay muchas versiones de cada aparato, unos mejores que otros, y a precios diferentes.
Tendría unos cinco o seis años cuando conocí los videojuegos, gracias a un Spectrum+ que mi padre compró años antes con mi tío. Para cuando yo le eché el guante ya lo habían dejado completamente de lado, así que digamos que me lo agencié. Tenía un par de juegos en cintas, y en aquella época me parecían muy entretenidos, pero poco después algunos amigos míos se compraron una videoconsola, un término nuevo para mí. La llamaban Nintendo, y no iba con cintas, ni tenía teclado. Yo quería una. Y la pedí, aunque aún tardarían en comprármela (ya se sabe, padres que lo veían inútil y pensaban que era tirar el dinero). Como estaba pesado, me compraron una Atari 2600 clónica con cientos de juegos. Eran cutres, pero a mí me seguían pareciendo muy entretenidos. Aunque cada vez que veía la NES me daba cuenta de que en realidad sus juegos eran mejores. Había visto la Master System en casa de un amigo, y el Alex Kidd era sin duda un juego muy divertido.
La carrera de los bits y los megahercios
- 1. La carrera de los bits y los megahercios
- 2. Videoconsolas y PC
- 3. Cómo juegan los PCs y las consolas
- 4. La madurez del 3D: Xbox, GameCube y PS2
- 5. La nueva generación: Xbox 360 y PlayStation 3
- 6. Volviendo la vista atrás: la Dreamcast
- 7.1. Volviendo la vista adelante: la Wii
- 7.2. Volviendo la vista adelante: la Wii (y II)
Me daba la sensación de que una consola de más bits, y un juego de más megabits eran siempre mejor. Pero el tema del rendimiento no es tan sencillo. Ahora he crecido, y tengo una considerable formación en software y hardware que me han permitido entender la potencia. Y mi primer objetivo será discutir y explicar un poco en detalle de qué depende.
Empezaré tratando temas muy básicos y discutiendo las falacias más habituales, para ir subiendo la dificultad y acabar hablando del rendimiento de la Xbox 360 y la PlayStation 3, pasando por una comparativa de rendimiento de un PC y una consola o cómo puede ser que con sólo 300MHz la PS2 pueda mover todos lo polígonos que mueve, o cómo la NES con una CPU de menos de 2MHz puede hacer algo. :-)
En principio cualquiera con mínimos de conocimientos de informática puede leer este artículo, así que ya sabes. Las entregas que tengo pensadas son:
- 1ª parte (ésta): La carrera de los bits y los megahercios.
- 2ª parte: Una consola y un PC desde la perspectiva del juego. Ancho de banda y cálculos SIMD, la clave de las 3D.
- 3ª parte: Comparativa de rendimiento de la Super Nintendo y la Megadrive. ¿Cuál era más potente?
- 4ª parte: La Xbox 360 y la PS3. ¿Cómo hacen para comer polígonos?
La confusión de los megahercios
Especialmente desde la proliferación de los PCs, la gente, que cada vez más disponía de ordenador, parecía asociar MHz con velocidad. Y esto es cierto y falso.
Gran parte del procesamiento en un ordenador lo lleva a cabo la CPU. Si ésta es más veloz, más rápido se ejecutarán los programas. La CPU realiza todas los procesos en pequeños pasos: divide el trabajo en diminutas acciones elementales y las ejecuta una tras otra muy rápidamente. Cada una de ellas requiere además que los circuitos internos de la CPU cambien varias veces de estado. Estos cambios de estado no pueden ocurrir en cualquier momento; están sincronizados.
Los MHz a los que trabaja una CPU indican los millones de cambios de estado que puede haber en ella, cada segundo. 1MHz quiere decir un millón de cambios. 10Mhz, diez millones. En este sentido, más MHz sí indica mayor velocidad de trabajo.
Pero una CPU de más megahercios sólo es más rápida que otra de menos si se trata del mismo tipo de CPU. Esto es debido a que las CPUs son circuitos muy complejos que no están construidos de la misma forma, y por lo tanto cada una hace las cosas a su manera, de forma distinta, en distintos pasos y pudiéndose dar el caso de que a menos megahercios sea más eficiente.
Aunque dos personas hagan veinte viajes, la cantidad de cosas que pueden transportar puede no ser la misma. Dependerá de la fuerza de cada uno, de su resistencia, su estatura, etc...
Un ejemplo son las CPUs de la NES (1.7MHz) y la Master System (3.50MHz). Parecería que la Master System era el doble de rápida, pero en la práctica el rendimiento de la CPU era similar.
Así que:
Falacia 1: Más MHz implica necesariamente más rendimiento. Falso.
Nota técnica: la CPU sabe a cuántos MHz funcionar porque los cambios internos de estado están sincronizados a una señal de reloj. Una señal de reloj alterna continuamente su valor, de 0 a 1. La CPU realiza uno de sus cambios internos sólo cuando el reloj pasa por cierto momento; por ejemplo, cuando pasa de 0 a 1.
Cada uno de las acciones elementales de una CPU se llama instrucción, y estas instrucciones son las que se ejecutan a través de varios cambios de estado. Las instrucciones no son más que una secuencia de 1 y 0, que indican a la CPU una operación particular.
La confusión de los bits
Los bits de una CPU hacen referencia al número de bits que puede manejar a la vez. Esta característica sí que suele ser bastante representativa del rendimiento. Una CPU del doble de bits hace todo el doble de rápido que otra que sea idéntica pero de la mitad de bits. Sería como comparar la cantidad de cosas que pueden llevar dos personas, una de las cuales tiene cuatro brazos.
Aunque casi siempre, y como norma general, una CPU de 64 bits será más potente que otra de 32 bits, esto no es una regla incondicional.
Por ejemplo, una CPU muy optimizada de 8 bits que funcione a 20MHz podría fácilmente sobrepasar a una CPU de 16 bits no tan bien diseñada, y corriendo a 7MHz.
Pero hay otra fuente de confusiones al respecto cuando se oye una referencia al número de bits de una consola. ¿Bits de qué?
Cuando la guerra de las 16 bits entre la Super Nintendo y la Mega Drive, se hacía mucha referencia a los bits de las nuevas consolas que aparecían, como la Jaguar, la Atari Lynx, la 32X, el CDi, la AmigaCD32, y un largo etc. Era equivalente a la comparación que se suele hacer en los MHz de dos PCs, donde los usuarios poco experimentados buscan habitualmente más megahercios.
Pero cuando se dice que una consola es de 16 bits, no siempre se está hablando de lo mismo. Puede ser que hable de los bits de la CPU, como he dicho, o de los bits del bus de datos, o de los bits del procesador gráfico. El bus de datos es el conjunto de líneas que tiene la CPU a su disposición para mandar y recibir datos, y un bus de 16 bits indica que puede enviar y recibir 16 bits a la vez por el bus.
Los bits de un procesador gráfico indican lo mismo que los bits de una CPU: el número de bits que puede manejar simultáneamente para hacer cálculos.
Ejemplo
Un PC típico, Athlon XP, con una tarjeta gráfica Raedon 9600 tendría:
- CPU: 32 bits
- Bus de datos: 64 bits
- Procesador gráfico: 128 bits
Por lo tanto, la CPU puede traer 64 bits de golpe, pero si quiere procesarlos tendrá que operar primero sobre 32 bits, y luego sobre los otros 32 bits. De momento hablo de operaciones normales, con carácter ilustrativo. Más adelante veremos que realmente sí puede operar sobre los 64 bits a la vez, haciendo uso de cálculo vectorial. ¿Qué? MMX, 3DNow!, SSE, etc. Eso. :-)
Si no sabes de que va esto, no te preocupes, hablaré de ello cuando llegué el momento. Es la clave del alto rendimiento de cualquier consola potente 3D, como la Dreamcast, la PS2, la Xbox, la GameCube, etc.
La Super Nintendo y la Mega Drive son consideradas de 16 bits. En este caso se están comparando los bits de la CPU, pero hay diferencias en el bus de datos. Mientras la Mega Drive es una máquina totalmente 16 bits (que además está optimizada para manejar 32 bits), el bus de datos de la SNES es de sólo 8 bits. Luego en este caso, la SNES tiene que leer dos veces la memoria para llevar a la CPU un valor de 16 bits sobre el que operar. Esto, unido a que la CPU de la Mega Drive va al doble de MHz, podría hacer pensar que en cuanto rendimiento la consola de SEGA se come a la de Nintendo. Muy pronto veremos que esto no es tan cierto, y explicaré el por qué.
Pero antes debo detenerme a comentar la falacia más típica en mi opinión, y que tiene a muchos usuarios poco informados debatiendo sobre el color del éter. Toda esta historia empezó cuando se acuñó la designación de generación de los 32 bits, generación de los 64 bits, generación de los 128 bits... Deberíamos ir ya por la de los 256, pero vamos a pararnos un momento a ver esto, que es muy interesante.
En primer lugar, aquí ya estamos mezclando cosas. Estos bits YA no se refieren a lo mismo. Ya no están hablando de los bits de la CPU de la consola (excepto la de los 32 bits). Ni la Nintendo 64 tiene una CPU de 64 bits, ni la Dreamcast de 128 bits, ni siquiera la PS2, ni la Xbox, ni la GameCube. Una CPU de 128 bits es algo monstruoso. Mucha gente no tiene la debida formación al respecto como para darse cuenta de lo que significa que una CPU sea de 128 bits.
La generación de los 128 bits se refiere a los bits del procesador gráfico respecto a la cantidad de bits con los que puede operar haciendo uso de operaciones vectoriales. Un truco de márketing muy chulo, pero que no cuela. No se puede de repente cambiar lo que nosotros queremos decir con bits a mitad de la partida, y seguir comparando la potencia de consolas viejas con las nuevas. Antes de las generación de los 32 bits, se solía hablar de la CPU; después, cuando el juego se vuelve eminentemente 3D, lo que implica una masiva cantidad de operaciones que realizar, se empieza a referirse a los bits que pueden ser manejados para cálculos relativos al procesador de vídeo, o las operaciones vectoriales de la CPU, y vete a saber si a alguna otra cosa. En definitiva, hay que entender de qué estamos hablando.
El caso de la Dreamcast, un genial ejemplo
La Dreamcast fue una gran consola. Su único fallo fue ser la sucesora de la Saturn, y la saga 32X/MegaCD. Pero bueno, no todo sale bien.
Su CPU era la SH-4 de Hitachi, una CPU de 200MHz muy interesante, porque en función de lo que nos interese decir es de 16, de 32, de 64 y de 128 bits. Toma ya. Está claro que habrá que explicar un poco esto.
En el sentido habitual, en el que he venido hablando, sería de 32 bits. ¿Por qué? Porque era capaz de operar con enteros de 32 bits. En este sentido, se puede comparar con la SNES y la Mega Drive, que son de 16 bits, o la NES y la Master System, de 8 bits.
Sin embargo, el bus de datos del SH-4 era de 64 bits, como en un PC. ¿Por qué? Porque la CPU era capaz de mandar o recibir 64 bits simultánemanete. En este sentido, se puede comparar con la Mega Drive, de 16 bits, y la SNES, la NES o la Master System, de 8 bits.
También es de 64 bits si nos referimos a la precisión de sus operaciones en punto flotante.
Pero también podemos vender el SH-4 como un 128 bits si nos referimos a su bus interno para operaciones en coma flotante. Pero seguro que esto no nos lo especificaron al compararla con las 32 bits. ¿Por qué? Porque no les interesa :-)
No, ya, pero ¿por qué es de 128 bits? Pues porque los datos ya almacenados en el interior de la CPU pueden transferirse a las unidades de punto flotante en bloques de 128 bits simultáneamente.
Hablaremos más adelante del hardware de esta gran consola.
Falacia 2: Más bits implica más potencia. Falso.
Primero habría que ver si se refieren al mismo aspecto de la máquina, y además hay que tener en cuenta que, si se refieren a lo mismo, aunque sea un buen indicativo de superioridad podría no ser así.
Nota técnica: cuando antes he dicho que la Dreamcast podía mover 128 bits desde los datos ya almacenados en la CPU a las unidades de punto flotante, quería decir que estos datos ya fueron traídos de la memoria RAM y están guardados en la caché de la CPU.
Dentro de los procesadores hay, fundamentalmente, dos almacenes de información que se deban conocer. La caché interna y los registros internos de la CPU.
La caché es una memoria pequeña, en este caso de 24Kb, y mucho más rápida que la memoria RAM. En ella el procesador mantiene una porción del código que está ejecutando y de los datos con los que está trabajando, de manera que toda la información que requiera de la memoria RAM, si está en la caché, la tomará de allí evitando tener que esperar a que la memoria RAM se la envíe.
Los registros internos son un conjunto de diminutos almacenes de datos, aún más veloces, donde se puede guardar un conjunto muy reducido de información, como operandos para los cálculos, resultados intermedios, etc. En definitiva, los datos con los que trabaja la CPU en ese instante. Normalmente el tamaño de los registros coincide con el ancho de palabra de la CPU, es decir, vulgarmente hablando, sus bits. En el caso del SH-4 de la Dreamcast son 32 bits, luego en cada registro se puede guardar un valor de 32 bits, del rango de 0 a 4.294.967.296, o en otras palabras, puede almacenar un número que puede ir desde 0 a algo más de 4 mil millones (la mitad si es con signo, de -2 mil millones, hasta +2 mil millones).
Si un registro es más grande, permite manejar números enteros mayores o números en punto flotante con mayor precisión. Una de las ventajas de un PC de 64 bits, como el Athlon 64, es que sus registros son de 64 bits en lugar de 32 bits como viene siendo desde el 386.
Por tanto, para unir un poco todo, el SH-4 de la Dreamcast puede:
- Traer 64 bits de golpe desde memoria.
- Almacenar valores de 32 bits en sus registros, uno cada vez.
- Transferir desde su caché 128 bits a la unidad de cálculo en punto flotante.
Como una consola 3D requiere un rendimiento en punto flotante muy elevado, es comprensible mencionar estos 128 bits, pero seguro que ahora está todo un poco más claro.
La confusión de los megabits
La última sección de esta primera parte la voy a dedicar a los megabits que se anunciaban antaño cuando se hacía referencia a los cartuchos.
Todos estaréis familiarizados con los bytes. En un PC se mide cuánto ocupan las cosas por su tamaño en bytes, kilobytes y megabytes.
Cada byte está formado por ocho bits, y cada bit puede ser 1 o 0. Ejemplo:
- Los bits 00000000 forma el byte 0
- Los bits 00101110 forma el byte 46
- Los bits 10101100 forma el byte 172
- Los bits 11111111 forma el byte 255
Luego 8 bits nos permiten representar números del rango 0 a 255, o -127 a +128 si es con signo.
En la época de los cartuchos, el tamaño de los juegos se daba en bits, no en bytes, porque estaban almacenados en circuitos de memoria ROM y es habitual usar los bits, ya que a priori se pueden usar en sistemas que no tienen por qué trabajar con 8 bits (bytes).
Esto quiere decir que si un cartucho de NES estaba anunciado como de 4Mbits, en realidad habrá que dividir por ocho para pasarlo a los bytes a los que normalmente estamos habituados. 4/8 = 0.5Mbytes. Medio megabyte, o 512Kbytes, como se quiera.
La mayoría de los juegos de SNES y Mega Drive eran de 16Mbits (2Mbytes), y cuando salieron juegos como el Super Metroid (24Mbits), el Super Street Fighter II (32MBits) y posteriores como Chrono Trigger (32MBits), Donkey Kong Country (32MBits), etc. a menudo se mencionaba esta cifra para impresionar. Para dejar claro que el juego era grande, y que merecía la pena.
Los juegos de la poderosa Neo Geo, o de los arcade, eran muy caros porque las ROMs eran enormes para la época, alcanzando cientos de megabits. Pero la superioridad técnica de estas bestias de los 2D se debía a muchos factores, como su CPU, sus coprocesadores, RAM, etc.
Que un juego ocupe más significa eso, que ocupa más. No tiene por qué estar relacionado con su calidad. Habitualmente, más Mbits se traducen en más espacio para los gráficos (y de más colores), niveles, música, etc., pero no olvidemos que uno de los mejores plataformas de la historia (para mi gusto), el Super Mario World, es un juego de sólo 4Mbits. Un tamaño que tienen multitud de juegos de Master System y NES.
Falacia 3: Más megabits implican mejor juego. Falso.
Más megabits implican más espacio, y por tanto posibilidades de aprovecharlo bien, pero ésa es otra historia :-)
Conclusión temporal
Y con esto me despido hasta la próxima entrega, en la que principalmente compararé el PC con las consolas desde la perspectiva de la máquina, respecto a su modo de funcionar, y el diferente enfoque que tienen.
Analizaré por qué una consola es adecuada para el juego y cómo es posible que una Dreamcast, con una CPU de 200MHz, 16Mb de RAM, y 8Mb de vídeo pudiese correr juegos de forma fluida que habrían requerido de un PC con al menos un K6-2 a 400MHz, 64Mb de RAM y una aceleradora gráfica de 16Mb, que por supuesto saldría mucho más caro.
Espero que esta primera parte os haya parecido interesante. :-)
¡Hasta la próxima!
neth, Usuario
Xavi Robles, Tah Boss
chiconuclear, Tah Boss
Marc Pm, Usuario
Tatoon, Usuario
patroclus, Usuario
DrBoiffard, Usuario
Marc Pm, Usuario
*DJPøP3SkÛ_19cm*, Usuario
patroclus, Usuario
La momia que fuma, Usuario
alias user, miembro
patroclus, Usuario
alias user, miembro
neth, Usuario
alias user, miembro
JakCore, Usuario
manu, Usuario
alias user, miembro
Tito Almo, Usuario
alias user, miembro
Trevinho, Usuario
David, Usuario
Por favor identifícate para comentar.