Browse Prior Art Database

Operand Consistency Attendant: An Associative Solution to the Data Field Consistency Problem

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

Publishing Venue

IBM

Related People

Brooks, AP: AUTHOR

Abstract

The operand consistency attendant (OCA) to be described is a hardware mechanism developed to prevent simultaneous, incompatible accesses to data fields. Without it, an unacceptable situation can arise in multiprocessing systems when one user is updating a field while another user is accessing it.

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 50% of the total text.

Page 1 of 3

Operand Consistency Attendant: An Associative Solution to the Data Field Consistency Problem

The operand consistency attendant (OCA) to be described is a hardware mechanism developed to prevent simultaneous, incompatible accesses to data fields. Without it, an unacceptable situation can arise in multiprocessing systems when one user is updating a field while another user is accessing it.

In order to guarantee that competing processes do not simultaneously access data except for compatible purposes, the OCA must compare the operand addresses of each instruction being executed against every other operand address in use. When a match is found, the intents of each user must be reconciled. In this way, an update locks out all other accesses; several inquirers may fetch at the same time, while executing updaters.

An operand address is available to the OCA at execution time. To determine whether interference may occur over the entire operand, both starting and ending addresses 1 and 3 are required. Assume that, at the machine language level, the length of each operand is always known. It may be specified as part of the instruction syntax, or it may be implied by the instruction decode circuitry. With this assumption, the ending address 3 can also be readily generated. For convenience, let ea be the ending address, and let o1 be the operand length-1. As noted, ea = ba + o1. Adopting the subscript a to mean an active operand, and subscript s to mean the subject operand, the relationships between these operands is as follows. There is no overlap between the subject operand and an active operand if: (1) ba(s) > ea(a) or (2) ea(a) < ba(a).

A simple OR of relations (1) and (2) will determine whether the operands overlap. In parallel or multiprocessing machines, many data fields may be accessed simultaneously. To compare all of the active fields with each new subject operand efficiently requires an associative mechanism. In addition, in the system described, many new subject operands are constantly being requested. Most current systems allow several simultaneous storage accesses by utilizing low-address-bit storage interleaving.

The time needed to detect less-than and greater-than relationships, even in an associative manner, are necessarily dependent on the widths of the subjects. On the other hand, the time needed to detect the equal relationship is independent of the widths of the subjects. The following discusses how each range may be approximated by a single address and a mask implying its range. These addresses may then be compared for equality, exclusive of that portion of each shaded by the greater mask. The latter method may be used to approximate the OCA range overlap detection function.

Given the beginning address of a range and its length-1, the sum determines the ending address of the range. In computing this sum, the highest order bit set in the length-1 operand 2 may be determined, as can the highest order carry generated. These...