next up previous

2.2 Memories     continued...

Memory cycle time refers to the minimum period between two successive requests. For various reasons the time separating two successive requests is not always 0, i.e a memory with a response time of 80 ns cannot satisfy a request every 80 ns. A simple, if old, example of a memory with a long cycle time relative to its access time is the magnetic core used in early mainframe computers. In order to read the value stored in memory, an electronic pulse was sent along a wire that was threaded through the core. If the core was in a given state, the pulse induced a signal on a second wire. Unfortunately the pulse also erased the information that used to be in memory, i.e. the memory had a destructive read-out. To get around this problem designers built memory systems so that each time something was read a copy was immediately written back. During this write the memory cell was unavailable for further requests, and thus the memory had a cycle time that was roughly twice as long as its access time. Some modern semiconductor memories have destructive reads, and there may be several other reasons why the cycle time for a memory is longer than the access time.

Although processors have the freedom to access items in a RAM in any order, in practice the pattern of references is not random, but in fact exhibits a structure that can be exploited to improve performance. The fact that instructions are stored sequentially in memory (recall that unless there is a branch, PC is incremented by one each time through the fetch-decode-execute cycle) is one source of regularity. What this means is that if a processor requests an instruction from location x at time t, there is a high probability that it will request an instruction from location x + 1 in the near future at time . References to data also show a similar pattern; for example if a program updates every element in a vector inside a small loop the data references will be to v[0], v[1], ... This observation that memory references tend to cluster in small groups is known as locality of reference.