Browse Prior Art Database

Using Compare and Swap to Synchronize Buffers and Channel Command Word Appending

IP.com Disclosure Number: IPCOM000117666D
Original Publication Date: 1996-Apr-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 2 page(s) / 76K

Publishing Venue

IBM

Related People

Cardall, DR: AUTHOR [+2]

Abstract

Disclosed is a method for buffering computer output and serializing a never-ending Channel Command Word (CCW) chain (channel program) using the Compare and Swap (CS) or Compare Double and Swap (CDS) instruction as the only serializing tool.

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

Using Compare and Swap to Synchronize Buffers and Channel Command
Word Appending

      Disclosed is a method for buffering computer output and
serializing a never-ending Channel Command Word (CCW) chain (channel
program) using the Compare and Swap (CS) or Compare Double and Swap
(CDS) instruction as the only serializing tool.

      The solution is to buffer data from multiple concurrent tasks
(threads), write the blocks to an attached system, maintaining First
In, First Out (FIFO) sequence and allowing variable length records.

Using COMPARE AND SWAP and responsibility passing, the following
characteristics are achieved:
  o  requires no other serialization techniques
  o  dispatching does not effect sequencing of buffers
  o  multiple invokers can be filling buffer(s) concurrently
  o  CCWs can be appended on the fly (reducing StartIOs) - thus
      potentially producing a never ending channel program
  o  only one user will issue StartIOs (responsibility passing, not
      latching)
  o  responsibility passing can shorten path length as load increases
  o  minimal non-contention path length
  o  no contention long path due to concurrent updating tasks
  o  increasing concurrency has virtually no affect
  o  code can run enabled for interrupts

Compare and Swap double word elements
  title            name     how many     function
  Free Buffer      CdsF     1            LIFO chain of free buffers
  Current Buffer   CdsH     1/device     next available buffer and
                                         offset
  Buffer Control   CdsK     1/buffer     count of users, presence
                                         of older buffer, buffer
                                         full flag
  CCW Control      CdsW     1/device     last CCW in chain, append
                                         in progress flag, who must
                                         free

The anchor contains a CdsF and for each...