Browse Prior Art Database

Fast Allocation of Different Size Entries within a Data Buffer

IP.com Disclosure Number: IPCOM000118867D
Original Publication Date: 1997-Aug-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 4 page(s) / 94K

Publishing Venue

IBM

Related People

Barrett, WM: AUTHOR

Abstract

Disclosed is a method and apparatus for reserving spaces within a data buffer. The reservation (or allocation) decision may be required to be made on consecutive clock cycles and may involve differing amounts of buffer space. This apparatus is designed to minimize internal timing delays, so as to allow a fast system clock rate.

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

Fast Allocation of Different Size Entries within a Data Buffer

      Disclosed is a method and apparatus for reserving spaces within
a data buffer.  The reservation (or allocation) decision may be
required to be made on consecutive clock cycles and may involve
differing amounts  of buffer space.  This apparatus is designed to
minimize internal timing delays, so as to allow a fast system clock
rate.

      A device is attached to a high-speed internal processor bus
within a computer system.  This bus consists of separate Command and
Data Busses.  Within this device is a Data Buffer (#1) that is used
to load data from the System Data Bus.  As certain commands appear on
the System Command Bus, a portion of the data buffer is allocated (or
reserved) for use when the data appears some time later.  The amount
of buffer space that may be reserved by a single command is either
128 bytes, 64 bytes, or 16 bytes.  As shown in the Figure, any given
128-byte logical section of the data buffer can be used for storing
either:
  o  One 128-byte piece of data,
  o  Two 64-byte pieces of data, or
  o  Eight 16-byte pieces of data.

      This method allows for maximum utilization of the data buffer
by allowing the buffer to be filled up with any one of many possible
combinations of sizes of data.

      It is possible for commands to appear on the System Command Bus
as frequently as once every clock cycle.  As each command appears, a
decision needs to be made as to whether there is available space
within the data buffer for this command.  Therefore, allocation
decisions need to be made within one clock cycle, and such events can
occur on consecutive cycles with any random mixture of data sizes.

This apparatus contains three separate "pointers" into the Data
Buffer:
  o  A pointer that "points" to a free 128-byte section of the
      buffer. (#2)
  o  A pointer that "points" to a free 64-byte section of the
      buffer. (#3)
  o  A pointer that "points" to a free 16-byte section of the
      buffer. (#4)

      At any given point in time, these three pointers may be
pointing at different areas of the buffer, or they all may be
pointing at (or within) the same 128-byte segment.  This is due to
the fact that  the buffer locations are allocated and eventually
freed-up in a random  fashion.

   ...