Browse Prior Art Database

Efficient Check Sum Computation

IP.com Disclosure Number: IPCOM000123349D
Original Publication Date: 1998-Oct-01
Included in the Prior Art Database: 2005-Apr-04
Document File: 2 page(s) / 61K

Publishing Venue

IBM

Related People

Madan, B: AUTHOR

Abstract

This article describes application such as networking protocols which need to transport bulk data over a distance resort to appending check-sum bytes to the information bytes. These check sum bytes are typically computed by the protocol software. Such applications also carry out block data transfer from one software layer to another. Most contemporary CPUs include machine level instructions as a part of their instruction set to carry out such block data transfers operation efficiently. Even though in such situations, a data block is being moved or copied from one place in the memory to another, CPU is still kept involved for the entire duration of such an operation. The suggestion here is to add similar instructions for performing checksum computation on a block of data.

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

Efficient Check Sum Computation

   This article describes application such as networking
protocols which need to transport bulk data over a distance resort
to appending check-sum bytes to the information bytes.  These check
sum bytes are typically computed by the protocol software.  Such
applications also carry out block data transfer from one software
layer to another.  Most contemporary CPUs include machine level
instructions as a part of their instruction set to carry out such
block data transfers operation efficiently.  Even though in such
situations, a data block is being moved or copied from one place in
the memory to another, CPU is still kept involved for the entire
duration of such an operation.  The suggestion here is to add
similar instructions for performing checksum computation on a block
of data.  The following observations are relevant to the discussion:
  1.  Networking softwares use a small number (e.g., 1 or 2) of
      different check sum algorithms, e.g., simple add or 1's
      complement add, etc.  Hence, the desired algorithm for
      check sum can be specified in the algorithm by means of
      either 1 or 2 bits (2 to 4 different algorithms) of the
      op-code of such instructions or the algorithm to be
      used can be specified in a separate register, e.g., 'DL'.
  2.  There will not be a large extra computational burden placed
      on the CPU while supporting such operations.  This is
      because in any case, CPU is kept involved for the entire
      duration of a block data transfer operation.
  3.  Additional silicon real estate required for supporting
      such operations is likely to be very small.
  4.  Performance of the software is likely to improve
      substantially because of:
      a.  Check sum operation is known to be a big contributor
          to the total...