[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [HELP] Zobrist Hashing
Weimin wrote:
>I thought Mousheng can use board string directly without losing efficiency
<................
Actually one doesn't even need to look up the index table. All one need is a
dedicated data bus. For example, for 4 billion patterns, only needs a 32 bit
data bus.
Let's see how this will work out for 8x8 patterns. There are 64 positions.
Thus, 3^64 =3.43*10^30 = 2^102. Suppose each pattern needs 2 byte to store the
pointer to the pattern moves. One need 6.86*10^30 byte of memory, which
already exceeds all the RAMs ever produced on earth. However, this scheme may
still work. It needs a modified data bus. For the 8x8 patterns, one can design
a 102 bit data bus. It will has one status line. A high will indicate data
available and a low will indicate no data.
All thos address which has no pattern moves are connected together to a switch
and don't have to have a physical memory. Whenever one of them is addressed,
the switch turn the status line to low to indicate no data. Only those
addresses that has pattern moves need to have a certain mount of memory (2 to
4 bytes?). When one of these later addresses is addressed by the data bus, a
switch will put a high on the status line to indicate data available and the
corresponding pointer address will be loaded on the data lines ( 16 to 64
bits?). Thus it forms a hardware hash table. The advantage is that it's much
faster, only one operation is needed.
In most computer software, memory access is acomplished by incremental
counters. To access the 2 billionth data, the counter need to add 2 billion
times.
Dan Liu