< previous page page_442 next page >

Page 442
0442-01.gif
Figure 7.16
Hashing.
Actually, it is not too difficult to compute the quotient of the address divided by 2k + 1. Any number that is b + 1 (b the radix) is represented as 1 .. b + 1 (or 11, in decimal). We are trying to find:
0442-02.gif
where R = N mod 2k + 1. Now we can write
d87111c01013bcda00bb8640fdff6754.gif
(2k + 1)Q = N - R = N0.
Since 2k + 1 = 11 (base 2k), we can write the digits Q = qn-1 q0 and N0 = dn-1 d0. So 11Q = N0 can be written as
0442-03.gif
It is now clear that we can back-solve this for each of:
q0 = d0,
N1 = N0 - q0
q1 = d1,
N2 = N1 - q1
q2 = d2,
N3 = N2 - q2, etc.

where Ni is the most significant digit and qi-1 the least significant digit.
"Hashed" Addresses
A complementary technique for dispersing addresses is to "hash" the address bits (X). This "hashing" is a strict 1:1 mapping of the bits in X to form a new address X¢ based on simple manipulations of the bits in X. These manipulations usually consist of (Figure 7.16):
1. Rearrangement of bits.
2. Negation of bit values.
3. Exclusive OR of certain bit combinations.

 
< previous page page_442 next page >