Patents by Inventor Douglas M. Pase

Douglas M. Pase has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 6128639
    Abstract: Division system and method support a hardware division address centrifuge to provide a flexible addressing scheme, and thus facilitates the reorganization and redistribution of data between remote and local memory blocks in a distributed memory massively parallel processing system. A flexible addressing scheme supports data organizations which can vary widely, depending on the processing task. Different data organizations in memory are supported by a PE internal address having certain bits designated as the target PE number and the remaining bits designating the offset within that PE's local memory. The PE and offset bits are distributed throughout the PE internal address to achieve various data distributions throughout memory. When a transfer occurs, the PE number bits and offset bits are separated via the centrifuge under control of a software-supplied mask.
    Type: Grant
    Filed: October 19, 1998
    Date of Patent: October 3, 2000
    Assignee: Cray Research, Inc.
    Inventor: Douglas M. Pase
  • Patent number: 5900023
    Abstract: An efficient integer-division-by-an-constant method and apparatus. This integer-division-by-an-constant is useful in calculations which must be performed often and/or quickly, and where the denominator is fixed for the calculations, such as address calculations in massively parallel, distributed memory processor systems. Also described is a method and apparatus using the integer-division-by-an-constant method and apparatus, which facilitates removing power-of two restrictions on the reorganization and redistribution of data between remote and local memory blocks in a massively parallel, distributed-memory processing system. The flexible addressing scheme provided supports data organizations which vary widely depending on the processing task. In particular, a plurality of processing elements (PEs) operating in parallel within a subset of all the PEs in a massively parallel processor system, may simultaneously operate on an array data structure, the array data structure having an arbitrary size and shape.
    Type: Grant
    Filed: June 28, 1996
    Date of Patent: May 4, 1999
    Assignee: Cray Research Inc.
    Inventor: Douglas M. Pase
  • Patent number: 5765181
    Abstract: A system and address method for extracting a PE number and offset from an array index. According to one aspect of the present invention, a processing element number is assigned to each processing element, a local memory address is assigned to each memory location and a linearized index is assigned to each array element in an array. The processing element number of the processing element in which a particular array element is stored is computed as a function of a linearized index associated with the array element and a distribution specification associated with the array. In addition, a local memory address associated with the array element is computed as a function of the linearized index and the distribution specification.
    Type: Grant
    Filed: December 10, 1993
    Date of Patent: June 9, 1998
    Assignee: Cray Research, Inc.
    Inventors: Steven M. Oberlin, Janet M. Eberhart, Gary W. Elsesser, Eric C. Fromm, Thomas A. MacDonald, Douglas M. Pase, Randal S. Passint
  • Patent number: 5586325
    Abstract: A method of setting array boundaries in order to simplify addressing across processor elements in a distributed memory system having global addressing. Each dimension of an array is examined to determine a lower bound, a declared upper bound and an implicit upper bound. The lower bound and the declared upper bound in each dimension are used to set limits for operations on array elements while the implicit upper bound calculated from the lower bound and the declared upper bound is used in calculating the location (processor element and offset) of a particular array element.
    Type: Grant
    Filed: December 10, 1993
    Date of Patent: December 17, 1996
    Assignee: Cray Research, Inc.
    Inventors: Thomas A. MacDonald, Janet M. Eberhart, Douglas M. Pase
  • Patent number: 5566321
    Abstract: A method of managing distributed memory in which a local memory is partitioned into a shared heap segment, a shared stack segment, a private heap segment and a private stack segment. One of the segments starts at a fixed address and grows upward. A second segment starts at a fixed address and grows downward. A third segment starts at a relocatable segment wall and grows downward and a fourth segment starts at a relocatable segment wall and grows upward.
    Type: Grant
    Filed: December 13, 1993
    Date of Patent: October 15, 1996
    Assignee: Cray Research, Inc.
    Inventors: Douglas M. Pase, Dave Wagner
  • Patent number: 5535365
    Abstract: A method of synchronizing accesses to shared data in a multiprocessing system having an atomic swap capability. A distinguished lock value is defined. A processor which wishes to access a shared data memory location performs an atomic swap of the lock value to the shared data memory location. If the data received from the atomic swap is equivalent to the lock value the processor knows that the memory location has been locked by another processor. The processor then repeats the atomic swap at intervals until data is received which is not equivalent to the lock value. The processor operates on the data and then performs a write to the shared data memory location to replace the lock value with the updated data. In an alternate embodiment, in situations where a unique lock value cannot be defined, an array is created to store lock values associated with particular shared data memory locations.
    Type: Grant
    Filed: October 22, 1993
    Date of Patent: July 9, 1996
    Assignee: Cray Research, Inc.
    Inventors: Frank R. Barriuso, Douglas M. Pase, David J. Sielaff