Author: Robert Hyatt
Date: 21:54:58 02/05/03
Go up one level in this thread
On February 06, 2003 at 00:29:46, Russell Reagan wrote: >A few questions about 64-bit machines... > >1. For chess programming (mainly for bitboards), do either AMD or Intel's 64-bit >chips have any features that would make it more desirable over the other? Number >of registers, cache size, special instructions (bsf, popcnt, etc.), or whatever >else. The _main_ feature they have (for bitboarders) is the 64 bit internal data paths, registers, etc. some sort of find first one is really useful, but it can be computed without a specific hardware instruction. > >2. How much will one be able to take advantage of the hardware using a C/C++ >compiler and no assembly programming? The reason I ask this question is because >Gerd has mentioned that there will be so many general purpose registers, so many >MMX registers, and so many XMM registers. On 32-bit hardware you have to use >assembly to make use of some of these extras. What about on the 64-bit hardware? >That is a lot of registers (compared to 32-bit x86), and that would seem like an >awful waste if the compilers couldn't make use of all of those extra registers. 64 bit machines probably won't have a bunch of _different_ types of registers. IE generally you will find a large set of integer registers, and an additional (smaller usually) set of floating point registers. Or, as Cray did, just a set of registers that can do either depending on the instruction used. > >3. What is the difference between general purpose registers, MMX registers, and >XMM registers? In the case of the x86, GP registers can be used for "general purpose" stuff. Including integer math, address calculations, indexing, loop counting, etc. The MMX stuff uses the FP processor registers in a bizarre way so that you can execute a single instruction that will operate on multiple parts of one of the 64 bit FP registers at the same time. IE increment each of the 8 bytes at the same time, a form of SIMD operation... I'm not sure what XMM would apply to... But having several types is not uncommon. The cray had 64 bit scalar registers, 32 bit address calculation/indexing registers, and 8 vector registers with 128 words of data per register... It also had 64 "temp" scalar registers that couldn't be used for calculations, but they could be used as 1-cycle-access-time places to store the scalar registers if you "ran out"... ditto for 64 address temps for the 32 bit address registers.
This page took 0 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.