< previous page page_445 next page >

Page 445
0445-01.gif
Figure 7.18
Vector memory
requirements.
In this
illustration, 3
operands are
read and 1 is
written each
cycle. Since the
supply of
operands from
memory should
balance their
use, memory
must keep up
with this rate, or
limit
performance.
0445-02.gif
Figure 7.19
Bypassed vector requests held in a buffer of size TBF.
An associated issue is the degree of bypassing or out-of-order requests that a source can make to the memory system. Suppose a conflict arises: a request is directed to a busy module. How many subsequent requests can the source make before it must wait? Assume each of s access ports to memory has a buffer of size TBF/s (Figure 7.19). This buffer holds requests (element addresses) to memory that are being held due to a conflict. For each source, the degree of bypassing is defined as the allowable number of requests waiting before stalling of subsequent requests occurs.
From a modeling point of view, this is different from the simple binomial or the d-binomial models. The basic difference is that the queue awaiting service from a module is larger by an amount g, where g is the mean queue size of bypassed requests awaiting service. Note that the average queue size (g) is always less than or equal to the buffer size:
d87111c01013bcda00bb8640fdff6754.gif
g < TBF/s,
since g cannot exceed the size of the physically implemented buffer. (Although, depending on the organization of the TBF, one source buffer could ''borrow" from another.)
With or without request bypassing, there is a buffer between the s request sources and the m memory modules (Figure 7.19). This must be large enough to accommodate denied requests (no bypassing), i.e.:
d87111c01013bcda00bb8640fdff6754.gif
Buffer = TBF > mQc,

 
< previous page page_445 next page >