< previous page page_443 next page >

Page 443
Table 7.2 Simple address mapping.
Xi
Xj
Xk
Conventional Address
XiAXj
XjAXk
Xk
Mapped Address
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
2
0
1
0
2
1
1
1
7
0
1
1
3
1
0
0
4
1
0
0
4
1
0
1
5
1
0
1
5
1
1
0
6
1
1
0
6
0
1
1
3
1
1
1
7
0
0
0
0

Simple address mapping, as shown in Table 7.2, may be helpful in reducing contention in mod 2k memories in mixed application environments. It reduces contention for simple array access patterns for some common strides. However, in applications involving significant matrix manipulations, the stride problem may resurface, since the same strides are likely to create recurrent patterns of bits (the same values of Xi, Xj, and Xk, in the example). Thus, while hashing is usually sufficient, the use of hashing in conjunction with mod 2k + 1 mapping provides the best address distribution across a variety of applications and strides.
A memory system for use in vector/matrix accessing would then consist of (Figure 7.17):
1. Address hasher.
2. 2k + 1 memory modules.
3. Module mapper.
The overhead associated with this vector memory should not be excessivethe hashing function takes one or two gate delays, while the module address determination requires about two serial bit "additions." This may add an extra cycle to the memory access, but since the purpose of the memory is to access vectors, this cycle can be overlapped in most cases.
7.3.2 Modeling Vector Memory Performance: The Gamma (g)-Binomial Model
In a vector processor, we design for multiple simultaneous requests to memory. While access to memory (loading and storing the vector registers) can be overlapped with vector execution, a problem arises if the memory cannot keep up with the vector execution rate.

 
< previous page page_443 next page >