Browse Prior Art Database

Cache-Sensitive Dynamic Storage Configuration

IP.com Disclosure Number: IPCOM000037011D
Original Publication Date: 1989-Nov-01
Included in the Prior Art Database: 2005-Jan-29
Document File: 3 page(s) / 31K

Publishing Venue

IBM

Related People

Bowen, NS: AUTHOR [+2]

Abstract

In multiprocessor, multitasking computer systems, the control program often places highly shared writable data in consecutive memory locations. Depending on the implementation of the machine, these locations may end up in the same cache line which can cause performance degradation.

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

Cache-Sensitive Dynamic Storage Configuration

In multiprocessor, multitasking computer systems, the control program often places highly shared writable data in consecutive memory locations. Depending on the implementation of the machine, these locations may end up in the same cache line which can cause performance degradation.

The control program has many data areas which have an extremely high write activity. Many of these areas can be written into simultaneously from different physical processors. An example of such an area would be a table of control program spin latches used for system level functional serialization. The multiprocessor hardware has a

(Image Omitted)

particular granularity of exclusive control. When multiple processors attempt to write within this granularity, there can be significant processor performance degradations due to the increase in cache activity to maintain coherency.

It is desirable to configure this data so that distinct units of information lie in separate cache lines. This would result in better processor performance. Since the size of the cache line is the specification of an implementation but not of the architecture, the control blocks cannot be configured when the control program is built. Described is a technique in which the control program can dynamically configure the control block areas to avoid this previously mentioned cache degradation.

During system initialization, the control program queries the size of the granularity of exclusive control for this particular machine. This query is done through an architected machine interface. For ease of exposition, this unit of exclusive control is designated a "sector." The control program then attempts to partition the storage such that no two areas of independent write activity lie within the same sector.

For reasons of compatibility with existing code, it may not be possible to change the internal structure of some control blocks. The space for these control blocks is allocated so that parts of different control blocks are not in the same sector. As a concrete example, consider a control block 200 bytes long in a machine that has a sector size of 128 bytes. In the absence of information about the granularity of exclusive control, these control blocks might be allocated as indicated on the left in Fig. 1. With this information, the control program would allocate space for these control blocks as indicated on the right in Fig. 1.

It may also b...