Browse Prior Art Database

Updating Cache Data Array's with Data Stored by Other CPU's

IP.com Disclosure Number: IPCOM000086100D
Original Publication Date: 1976-Jul-01
Included in the Prior Art Database: 2005-Mar-03
Document File: 3 page(s) / 50K

Publishing Venue

IBM

Related People

Jones, JD: AUTHOR [+4]

Abstract

This description explains how data and addresses can be broadcasted to other CPU's from a CPU doing a backing storage store operation.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 3

Updating Cache Data Array's with Data Stored by Other CPU's

This description explains how data and addresses can be broadcasted to other CPU's from a CPU doing a backing storage store operation.

When a particular instruction does a store operation into the backing store using one CPU, the real address and data associated with the store operation are broadcasted to the buffer stores of the other CPU's in a multiprocessing system. If a CPU does a channel store operation, the real address and data associated with the channel store are broadcasted to all CPU's.

All CPU's receiving the broadcasted address simultaneously do an address array (cache directory) look-up, using address bits 8 - 26 (block address). Those that find the block address resident in their directory, will store the double word of data associated with the store request in their cache data array (address bits 8 - 28). Thus, the broadcasting of store addresses and updating of caches is called `buffer update' (BU).

When a CPU receives a broadcast buffer update address, a cache directory access is performed. Only if the directory access finds the block address valid will it be necessary for the buffer update function to vie for priority. When a buffer update request vies for priority it will always receive immediate priority. After the BU request is accepted, another directory access is done to check to see if the address is in the directory.

It is possible, because of concurrent use of the cache directory within the buffer update function, that between the time of the concurrent BU access and another directory access that a block validation or invalidation may occur. The address validated or invalidated may be the same as the BU address. Only if the second directory look-up finds the address resident will the data associated with the update address be stored in the cache data array.

The system contains several hardware interlocks to provide insurance for the data...