Browse Prior Art Database

Scalable-Lock Structure for a Hierarchical Shared-Memory Multiprocessor

IP.com Disclosure Number: IPCOM000111719D
Original Publication Date: 1994-Mar-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 38K

Publishing Venue

IBM

Related People

Hoover, RD: AUTHOR

Abstract

A method for reducing lock contention by partitioning each object class and corresponding lock class according to its location based on its real address.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 85% of the total text.

Scalable-Lock Structure for a Hierarchical Shared-Memory Multiprocessor

      A method for reducing lock contention by partitioning each
object class and corresponding lock class according to its location
based on its real address.

      A number of real address bits are combined with each lock class
to uniquely partition and identify a set of class locks.  These sets
are called node locks.  As an example, using 2 high-order address
bits would produce 4 sets of locks that exist independently, one set
of node locks within each partition created by the 2 real address
bits.  A node lock may be held by one, and only one, processor in the
system at a time.  With this invention N different processors may
hold a lock of the same lock class but in N different nodes, the
processors working concurrently without contention relative to each
other.

      A node lock is acquired by requesting a lock and specifying the
lock class and address of the object to be locked.  By programming
convention, this address is the address of the "head" (some
predefined byte) of the object being locked.  The entire object may
reside anywhere in Main Storage and may cross multiple lock
partitions.

      The lock request is sent to the node where the lock exists, as
determined by the objects address.  Arbitration for the lock is done
at the interconnect level within a node.  When the lock is acquired,
an appropriate response is sent back to the requesting processor.

      Wh...