Patrick McGehearty - Dallas TX Kevin R. Wadleigh - Plano TX Aaron Potler - Dallas TX
Assignee:
Hewlett-Packard Company - Palo Alto CA
International Classification:
G06F 1200
US Classification:
711 5, 711118, 711127, 36523004
Abstract:
The inventive mechanism determines whether memory source and destination addresses map to the same or nearly the same cache address. If they map to different addresses, then loads and stores are ordered so that loads to one cache bank are performed on the same clock cycles as the stores to another cache bank. After a group of loads and stores are completed, then load and store operations for each bank are switched. If the source and destination addresses map to nearly the same cache address and if the source address is prior to the destination address, then a group of cache lines is loaded into registers and stored to memory without any interleaving of other loads and stores. If the source and destination addresses map to the same cache location, then an initial load of data into registers is performed. After that, additional loads are interleaved with non-cache conflicting stores to move new values into memory. Thus, loads and stores to matching cache addresses are separated by time.
Cache Bank Conflict Avoidance And Cache Collision Avoidance
Patrick McGehearty - Dallas TX Kevin R. Wadleigh - Plano TX Aaron Potler - Dallas TX
Assignee:
Hewlett-Packard Company - Palo Alto CA
International Classification:
G06F 1200
US Classification:
711 5
Abstract:
The inventive mechanism determines whether memory source and destination addresses map to the same or nearly the same cache address. If they map to different addresses, then loads and stores are ordered so that loads to one cache bank are performed on the same clock cycles as the stores to another cache bank. After a group of loads and stores are completed, then load and store operations for each bank are switched. If the source and destination addresses map to nearly the same cache address and if the source address is prior to the destination address, then a group of cache lines is loaded into registers and stored to memory without any interleaving of other loads and stores. If the source and destination addresses map to the same cache location, then an initial load of data into registers is performed. After that, additional loads are interleaved with non-cache conflicting stores to move new values into memory. Thus, loads and stores to matching cache addresses are separated by time.