next up previous contents
Next: Búsqueda Up: Hardware Previous: El problema del Tiempo   Índice General

Generador de Movimientos

El principal avance a nivel de hardware relacionado con la generación de movimientos fue la utilización de palabras de mayor tamaño de bits, lo cual está directamente relacionado con la utilización de bitboards para generar jugadas de acuerdo a una regla prediseñada.

Los primeros computadores con cantidad limitada de palabras no podían utilizar la técnica de los mapas de bits, razón por la cual la generación de movimientos pasaba a ser un proceso bastante caro en cantidad de CPU. Los movimientos eran generados a través de fórmulas matemáticas las cuales al no utilizar el tipo de operación básica de los computadores (como es el caso de los bitboards) tomaban un tiempo considerable en ser generadas.

Máquinas de bajo tamaño en palabras de bits deberán hacer uso de su capacidad de procesamiento con tal de compensar la carencia de velocidad en el proceso de generar movimientos. El aumento en el tamaño de palabras de bits en los computadores logró hacer que los movimientos fueran generados directamente en Hardware. Con esto se aceleró considerablemente este proceso y los esfuerzos pasaron a mejorar la búsqueda y la capacidad de la función de evaluación.

La mayoría de las computadoras de hoy utilizan arquitectura de 32 bits (Pentium, Atlon, Cyrix). Esto implica que no pueden manipular en forma eficiente instrucciones de 64-bits. Incluso a pesar de que los últimos compiladores soportan variables de tamaño 64 bits (Delphi, Visual C++, gcc, Watcom, etc.) estos deberán dividir la variable en dos instrucciones de 32 bits antes de enviarlas al procesador para luego volver a juntarlas. Esto es un problema en performance. Las computadoras de 64 bits que podemos encontrar en el mercado no son de alto costo (por ejemplo, el modelo Dec Alpha 21164 tiene un valor cercano a los US 3.000) pero no son de uso común como las de 32 bits y se espera que pasen algunos años antes de tenerlas como un estándar.

Por su puesto la velocidad de procesamiento juega acá un rol esencial(como prácticamente en todos los factores), puesto que de no ser suficiente se perdería la capacidad ganada en tiempo con los mapas de bits. De existir poca velocidad, por más rápida que sean las operaciones con bitboards, la lentitud de los otros procesos opacará la labor de esta etapa. El factor de memoria acá no juega un rol tan decisivo puesto que se necesita para mantener los movimientos disponibles a partir de una posición, los cuales promedian 30 en posiciones de medio juego.

next up previous contents
Next: Búsqueda Up: Hardware Previous: El problema del Tiempo   Índice General
Santiago de Chile, Julio 2003