Patents by Inventor Edward S. Harriman, Jr.

Edward S. Harriman, Jr. 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: 7221927
    Abstract: Various embodiments are discussed for approaches to transparent mobility, which attempts to permit a wireless station to be handed off between wireless access points without packet loss, without noticeable delay to the station user, and/or without loss of session continuity.
    Type: Grant
    Filed: February 13, 2004
    Date of Patent: May 22, 2007
    Assignee: Trapeze Networks, Inc.
    Inventors: Tim Kolar, Edward S. Harriman, Jr., Stan Chesnutt, Allan Thomson, Dan Harkins
  • Patent number: 6272516
    Abstract: A method for handling cache misses in a computer system. A prefetch unit fetches an instruction for execution by one of a plurality of coprocessors. When the preferred embodiment of the present invention experiences a cache miss in a prefetch unit, the process for which an instruction is being fetched is passed off to a memory processor which executes a read of the missing cache line in memory. While the process is executing in memory processor, or queued by the scheduler for execution of the same instruction, the prefetch unit continues to dispatch other processes from the its queue to the other processors. Thus, the computer system, including the processors, do not stall. Processors continue to execute processes. The prefetch unit continues to dispatch processes. When the memory read is completed, the process in which the cache miss occurred is rescheduled by the scheduler. The prefetch again attempts to fetch and decode the instruction and arguments.
    Type: Grant
    Filed: April 17, 1998
    Date of Patent: August 7, 2001
    Assignee: Nortel Networks Limited
    Inventors: Richard L. Angle, Edward S. Harriman, Jr., Geoffrey B. Ladwig
  • Patent number: 6209020
    Abstract: A computer system architecture in which each processor has its own memory, strategically distributed along the stages of an execution pipeline of the processor, to provide fast access to often used information, such as the contents of the address and data registers, the program counter, etc. Memory storage is strategically located in close physical proximity to a stage in an execution pipeline at which memory is commonly or repeatedly accessed. Coupled to the pipeline at various stages are small memory cells for storing information that is consistently and repeatedly requested at that stage in the execution pipeline. The speed of the execution pipeline in a processor is critical to overall performance of the processor and the computer architecture of the present invention as a whole. To that end, the clock cycle time at which the pipeline is operated is increased as much as the operating characteristics of the logic and associated circuitry will allow.
    Type: Grant
    Filed: September 20, 1996
    Date of Patent: March 27, 2001
    Assignee: Nortel Networks Limited
    Inventors: Richard L. Angle, Edward S. Harriman, Jr., Geoffrey B. Ladwig
  • Patent number: 5935235
    Abstract: A method for searching for keys of arbitrary width in a table in a memory of a computer system by repeatedly executing lookup instructions on a lookup processor. The lookup processor executes a lookup instruction to find a key in a table. The execution of the lookup instruction results in a key being found, or a key not being found. If the key is not found, the process is requeued by a scheduler with the program counter register for the process pointing to the instruction immediately following the lookup instruction, i.e., the next instruction. In the event the key is found in the table, the entry in the table associated with the key contains the memory address of the next instruction to be executed. This memory address is loaded into the program counter register associated with the process in which the lookup instruction was executed. The scheduler requeues the process, later dequeues it, and the instruction pointed to by the program counter register is fetched by an instruction fetch unit.
    Type: Grant
    Filed: April 16, 1998
    Date of Patent: August 10, 1999
    Assignee: Bay Networks, Inc.
    Inventors: Richard L. Angle, Edward S. Harriman, Jr., Geoffrey B. Ladwig
  • Patent number: 5873078
    Abstract: In a search method for a radix search tree, a logic circuit for computing the actual offset of an entry in a node in a tree. The logic circuit accepts a pointer to a node in the tree, along with an associated bit mask indicating which entries are present in the node. The logic circuit further receives an entry value, the offset of which from the beginning of the node is to be computed by the logic circuit. The logic circuit utilizes Boolean AND gates to mask off higher order bits in the bit mask above the bit position corresponding to the entry value received by the logic circuit. The lower order bits in the bit mask, up to but not including the bit position corresponding to the entry value, are added together to determine the number of entries that exist at a lower offset in the node than the entry indicated by the entry value. The logic circuit combines the pointer received with the sum computed to calculate the offset memory address at which the entry is located in the node.
    Type: Grant
    Filed: July 19, 1996
    Date of Patent: February 16, 1999
    Assignee: Bay Networks, Inc.
    Inventors: Richard L. Angle, Edward S. Harriman, Jr., Geoffrey B. Ladwig
  • Patent number: 5857196
    Abstract: A computer implemented method for searching for a key in a radix search tree in a memory of a computer system. A table of keys is organized in a radix search tree stored in a memory of a computer system. The keys are divided into a string of symbols. Each node in the tree corresponds to a symbol. A path from a root node to a leaf node at level n in the tree represents a string of n symbols comprising a key. Each node is capable of having m possible entries corresponding to m possible symbol values. Each entry comprises a pointer to a son node and an existence map indicating which entries exist in the son node. In the preferred embodiment, the existence map is a bit mask that indicates, based on bit positions enabled and disabled in the bit mask, which entries exist in the son node pointed to by the pointer. By providing an existence map along with the pointer to a son node, m memory locations for m entries are allocated for the son node only if all of the m possible entries are used.
    Type: Grant
    Filed: July 19, 1996
    Date of Patent: January 5, 1999
    Assignee: Bay Networks, Inc.
    Inventors: Richard L. Angle, Edward S. Harriman, Jr., Geoffrey B. Ladwig
  • Patent number: 5848257
    Abstract: A multitasking computer system having multiple parallel and independently executing processors. Each processor has multiple pipeline stages. Each stage in the pipeline can be simultaneously executing a process. More processes than the sum of pipeline stages for all processors exist at any given time, which allows processes to migrate between processors and allows the processes queued at any one processor to increase, i.e., back up, momentarily without causing other processors to sit idle. Related to the ability to support at least as many processes as there are the sum of pipeline stages in all of the processors is the ability of the preferred embodiment of the present invention to migrate processes between processors. When a processor completes execution of an instruction for a particular process, the program counter for the process is incremented to point to the next instruction in the process. The process is then requeued by a scheduler.
    Type: Grant
    Filed: September 20, 1996
    Date of Patent: December 8, 1998
    Assignee: Bay Networks, Inc.
    Inventors: Richard L. Angle, Edward S. Harriman, Jr., Geoffrey B. Ladwig
  • Patent number: 5838960
    Abstract: A pipeline processor having an add circuit configured to execute separate atomic add instructions in consecutive clock cycles, wherein each separate atomic add instructions can be updating the same memory address location. In one embodiment, the add circuit includes a carry-save-add circuit coupled to a set of carry propagate adder circuits. The carry-save-add circuit is configured to perform an add operation in one processor clock cycle and the set of carry propagate adder circuits are configured to propagate, in subsequent clock cycles, a carry generated by the carry-save-add circuit. The add circuit is further configured to feedforward partially propagated sums to the carry-save-add circuit as at least one operand for subsequent atomic add instructions. In one embodiment, the pipeline processor is implemented on a multitasking computer system architecture supporting multiple independent processors dedicated to processing data packets.
    Type: Grant
    Filed: September 26, 1996
    Date of Patent: November 17, 1998
    Assignee: Bay Networks, Inc.
    Inventor: Edward S. Harriman, Jr.
  • Patent number: 5774739
    Abstract: A method for searching for keys of arbitrary width in a table in a memory of a computer system by repeatedly executing lookup instructions on a lookup processor. The lookup processor executes a lookup instruction to find a key in a table. The execution of the lookup instruction results in a key being found, or a key not being found. If the key is not found, the process is requeued by a scheduler with the program counter register for the process pointing to the instruction immediately following the lookup instruction, i.e., the next instruction. In the event the key is found in the table, the entry in the table associated with the key contains the memory address of the next instruction to be executed. This memory address is loaded into the program counter register associated with the process in which the lookup instruction was executed. The scheduler requeues the process, later dequeues it, and the instruction pointed to by the program counter register is fetched by an instruction fetch unit.
    Type: Grant
    Filed: September 20, 1996
    Date of Patent: June 30, 1998
    Assignee: Bay Networks, Inc.
    Inventors: Richard L. Angle, Edward S. Harriman, Jr., Geoffrey B. Ladwig
  • Patent number: 5761506
    Abstract: A method for handling cache misses in a computer system. A prefetch unit fetches an instruction for execution by one of a plurality of coprocessors. When the preferred embodiment of the present invention experiences a cache miss in a prefetch unit, the process for which an instruction is being fetched is passed off to a memory processor which executes a read of the missing cache line in memory. While the process is executing in memory processor, or queued by the scheduler for execution of the same instruction, the prefetch unit continues to dispatch other processes from the its queue to the other processors. Thus, the computer system, including the processors, do not stall. Processors continue to execute processes. The prefetch unit continues to dispatch processes. When the memory read is completed, the process in which the cache miss occurred is rescheduled by the scheduler. The prefetch again attempts to fetch and decode the instruction and arguments.
    Type: Grant
    Filed: September 20, 1996
    Date of Patent: June 2, 1998
    Assignee: Bay Networks, Inc.
    Inventors: Richard L. Angle, Edward S. Harriman, Jr., Geoffrey B. Ladwig
  • Patent number: 5561771
    Abstract: A method and apparatus for transmitting data between nodes connected to a communications bus, preferably a computer backbone, divides a full bus width into a plurality of sub-buses. Each sub-bus can be independently operated, and each node on the network can connect to one or more of the sub-buses. The apparatus provides, at a transmitting node, a determination of which sub-buses are available to transmit a data packet to one or more receiving nodes. The data words are divided into sub-words, thereby reducing the memory access time requirements and saving memory costs. In accordance with a particular embodiment, the header, at the beginning of the data packet, and the error check control, provided at the end of the data packet, are sent at a slower speed than the data information portion of the packet. The data information portion of the packet is sent at the highest speed compatible with the receiving node or nodes. In case one sub-bus fails, a node can transmit data over the other sub-buses available to it.
    Type: Grant
    Filed: August 11, 1995
    Date of Patent: October 1, 1996
    Assignee: Bay Networks, Inc.
    Inventors: Edward S. Harriman, Jr, Heather D. M. Achilles
  • Patent number: 5442750
    Abstract: A method and apparatus for transmitting data between nodes connected to a communications bus, preferably a computer backbone, divides a full bus width into a plurality of sub-buses. Each sub-bus can be independently operated, and each node on the network can connect to one or more of the sub-buses. The apparatus provides, at a transmitting node, a determination of which sub-buses are available to transmit a data packet to one or more receiving nodes. The data words are divided into sub-words, thereby reducing the memory access time requirements and saving memory costs. In accordance with a particular embodiment, the header, at the beginning of the data packet, and the error check control, provided at the end of the data packet, are sent at a slower speed than the data information portion of the packet. The data information portion of the packet is sent at the highest speed compatible with the receiving node or nodes. In case one sub-bus fails, a node can transmit data over the other sub-buses available to it.
    Type: Grant
    Filed: December 2, 1993
    Date of Patent: August 15, 1995
    Assignee: Wellfleet Communications
    Inventors: Edward S. Harriman, Jr., Heather D. MacDonald Achilles
  • Patent number: 5398245
    Abstract: A method and apparatus for processing a data packet, for delivery to a designated location, store selective portions of the packet header in a high speed cache memory to increase processing speed and hence throughput for a packet delivery system. The apparatus and method receive the packets from a data channel source and store portions of the header in cache, and at least the remainder of each data packet is stored in a slower speed memory. A CPU accesses the stored header portion of each packet in cache for necessary protocol and destination information processing of the data packet. The header portions are then overwritten with new data and combined with the remainder of the data packet stored in slower speed memory for transmission to the next packet destination. Preferably, the address at which the remainder portions are stored in slower speed memory determine the cache addresses at which the header portion is stored in high speed cache memory.
    Type: Grant
    Filed: October 4, 1991
    Date of Patent: March 14, 1995
    Assignee: Bay Networks, Inc.
    Inventor: Edward S. Harriman, Jr.
  • Patent number: 4943941
    Abstract: The floating point processor performs floating point addition or subtraction on a pair of binary arguments, each of which includes an exponent and a mantissa, without requiring a barrel shifter. The processor utilizes a serial arithmetic scheme in which corresponding portions of the arguments are examined sequentially as they are presented thereby to determine which argument is the larger. The exponent of the larger is loaded into a counter. The counter is decremented stepwise and each of the mantissas is shifted, most significant bits first, into an arithmetic circuit which generates carry save form results, starting when the value held by the counter corresponds to the respective exponent. The carry save form results are subsequently normalized and converted to canonical form by propagating the carries.
    Type: Grant
    Filed: January 13, 1989
    Date of Patent: July 24, 1990
    Assignee: Bolt Beranek and Newman Inc.
    Inventor: Edward S. Harriman, Jr.