In a data processing system including a processor for running successive processes, a cache memory, a main memory and an operand address prediction mechanism for developing a predictive address for prefetching operands, each identified by an address, from the main memory into the cache memory, which operand address prediction mechanism comprises a first mechanism including:
- A) a first in, first out stack for storing a plurality of addresses representing cache misses;
- B) a plurality of electronic switch means each having a plurality of address inputs and a single address output;
- C) means coupling said addresses stored in said stack individually to said electronic switch means inputs in predetermined orders;
- D) means for switching said electronic switch means to transfer said addresses applied to said electronic switch means inputs to said electronic switch outputs to establish at said electronic switch outputs predetermined combinations of said addresses;
- E) at least two subtraction circuit means, each said subtraction circuit means being coupled to receive a unique pair of addresses from said electronic switch means outputs and to issue a value representing the displacement therebetween;
- F) at least one comparator circuit means coupled to receive a pair of outputs from a corresponding pair of said subtraction circuit means and responsive thereto for issuing a prefetch enable logic signal if there is a compare condition;
- G) predictive address development means adapted to combine one of said addresses appearing at one of said electronic switch outputs and displacement information appearing at one of said subtraction circuit means to obtain a predictive address;
- whereby, the coordinated presence of said predictive address and said prefetch enable logic signal causes a signal group identified by said predictive address to be prefetched from said main memory into said cache memory;
- and
- a control circuit coupled to said first mechanism for enabling said first mechanism to operate only during intervals which commence immediately after a process change and terminate upon the first occurence of a succeeding predetermined event, which predetermined event occurs after the maximum rate of increase in the operative hit rate of the cache memory is reached following said process change.