Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 64 Bitties

Author: Bruce Moreland

Date: 09:35:28 01/03/00

Go up one level in this thread


On January 03, 2000 at 10:43:19, Fernando Villegas wrote:

>Not too much. F5,16 to Fritz 5,32 was not the great thing in terms of speed
>increment. Seems to me that top programs has reached a point where dramatic
>improvements are:
>a) more slowly
>b) more based in code improvements than in speed progress.
>But I am not a guru and I can be totally wrong. Ask the programmers here.
>Fernando

In a 16-bit architecture there are issues involving quantities that exceed 16
bits.  You have 65536 unique values that you can stuff into an int.  This is
usually enough in a chess program.  But going to 32-bits allows you to do a few
things that were a little harder before.

The big 16-bit issue is memory addressing, because you can only stick 65536
unique values into a pointer variable.  Computers have more memory than this, so
in the Intel architecture how they let you address more is through segment
registers, which are 16 additional bits that you can use to address more memory.

I'm not going to go into great detail about this, but it's a big deal.
Essentially you get 64K that you can address quickly, and for everything else
you have to use a segment register, which is slower.

In a chess program you can jam everything into 64K, except the hash table and
maybe some other large and infrequently used data, but you can do more if you
don't have to deal with this.

In the 32-bit world you don't have to deal with this.  You can create new chunks
of data without having to worry about blowing out 64K segments, you can write a
lot of code, and you can deal with ints that have larger values.

So what you get when you go from 16- to 32-bits is freedom to write more
interesting stuff.  You also get a little speedup from being able to throw away
segment registers.  And finally, in my opinion you can ditch your assembly code
if you want, since the compilers seem to be much more capable in the 32-bit
environment.

When you run in 64-bits, you can make bigger ints, but the lifting of code and
data size restrictions are much less important, since no "normal" programs are
anywhere near to blowing out a 32-bit address space.

For chess applications you can use a 64-bit datatype to assign one bit per
square, which can be either vaguely useful or extremely crucial depending upon
how you architect your program.

My guess is that most programs are designed to run fine in the 32-bit world, or
even the 16-bit world.  These will not benefit much from 64-bit processors.  You
can write a perfectly fine chess program without having to take heavy advantage
of 64-bit quantities.  If you are starting from scratch perhaps you would make
more use of these, but if you don't have them you can live without them and
suffer very little if at all.

bruce



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.