Patents by Inventor Donald Hooper

Donald Hooper 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: 7191309
    Abstract: A method of operating a processor includes concatenating a first word and a second word to produce an intermediate result, shifting the intermediate result by a specified shift amount and storing the shifted intermediate result in a third word, to create an address.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: March 13, 2007
    Assignee: Intel Corporation
    Inventors: Gilbert Wolrich, Matthew I. Adiletta, William Wheeler, Debra Bernstein, Donald Hooper
  • Patent number: 7111296
    Abstract: A parallel hardware-based multithreaded processor is described. The processor includes a general purpose processor that coordinates system functions and a plurality of microengines that support multiple program threads. The processor also includes a memory control system that has a first memory controller that sorts memory references based on whether the memory references are directed to an even bank or an odd bank of memory and a second memory controller that optimizes memory references based upon whether the memory references are read references or write references. A program thread communication scheme for packet processing is also described.
    Type: Grant
    Filed: July 8, 2003
    Date of Patent: September 19, 2006
    Assignee: Intel Corporation
    Inventors: Gilbert Wolrich, Debra Bernstein, Donald Hooper, Matthew J. Adiletta, William Wheeler
  • Publication number: 20060159103
    Abstract: In general, in one aspect, the disclosure describes a method that includes at a first packet processing thread executing at a first core, performing a memory read to data shared between packet processing threads including the first thread. The method also includes at the first packet processing thread, determining whether the data returned by the memory read has been changed by a packet processing thread operating on another core before performing an exclusive operation on the shared data by the first packet processing thread.
    Type: Application
    Filed: December 30, 2004
    Publication date: July 20, 2006
    Inventors: Sanjeev Jain, Donald Hooper
  • Publication number: 20060156303
    Abstract: A method of processing network data in a network processor includes using three or more threads to process a beginning portion, a middle portion, and an end portion of data packet. The first thread processes the beginning portion; one or more middle threads process the middle portion, and a last thread processes the end portion. First information is indirectly passed from the first thread to the last thread via a first buffer with the middle threads progressively updating the first information. Second information is directly passed from the first thread to the last thread via a second buffer.
    Type: Application
    Filed: September 28, 2005
    Publication date: July 13, 2006
    Inventors: Donald Hooper, Matthew Adiletta, Gilbert Wolrich
  • Publication number: 20060150165
    Abstract: Systems and methods are disclosed for supporting virtual microengines in a multithreaded processor, such as a microengine running on a network processor. In one embodiment code is written for execution by a plurality of virtual microengines. The code is than compiled and linked for execution on a physical microengine, at which time the physical microengine's threads are assigned to thread groups corresponding to the virtual microengines. Internal next neighbor rings are allocated within the physical microengine to facilitate communication between the thread groups. The code can then be loaded onto the physical microengine and executed, with each thread group executing the code written for its corresponding virtual microengine.
    Type: Application
    Filed: December 30, 2004
    Publication date: July 6, 2006
    Applicant: Intel Corporation
    Inventors: Donald Hooper, Prashant Chandra, James Guilford, Mark Rosenbluth
  • Publication number: 20050288917
    Abstract: A debugger tool that enables a user to perform packet-centric debugging in a network processor simulation environment is presented.
    Type: Application
    Filed: June 25, 2004
    Publication date: December 29, 2005
    Inventors: Donald Hooper, Eric Walker, Dennis Rivard, Mark Rosenbluth
  • Publication number: 20050289514
    Abstract: A debugger tool that enables a user to set history marks at selected points in time in a simulation history and to navigate the history marks.
    Type: Application
    Filed: June 25, 2004
    Publication date: December 29, 2005
    Inventors: Donald Hooper, Eric Walker
  • Publication number: 20050289396
    Abstract: A conditional breakpointing mechanism associates a breakpoint with a location in a program and with a breakpoint function that will be called to execute when the location is reached during a debugging session. The breakpoint function determines if a break will occur. The conditional breakpointing mechanism may used in a multi-threaded, multi-processor simulation environment.
    Type: Application
    Filed: June 25, 2004
    Publication date: December 29, 2005
    Inventors: Donald Hooper, Eric Walker, Dennis Rivard, William Wheeler, Mark Rosenbluth
  • Publication number: 20050207409
    Abstract: Method and apparatus to support a large Internet Protocol Forwarding Information Base. A packet is received at a network device, the packet including a destination address. A table is indexed into using a portion of the destination address to locate an entry in the table associated with the portion of the destination address. A pool index is derived from the portion of the destination address and is used to identify a pool of data blocks from among a plurality of pools of data blocks. The entry and the pool of data blocks are navigated to find a next-hop for the packet.
    Type: Application
    Filed: March 18, 2004
    Publication date: September 22, 2005
    Inventors: Uday Naik, Alok Kumar, Eswar Eduri, Donald Hooper
  • Publication number: 20050198361
    Abstract: A method and apparatus for meeting a given content throughput using at least one memory channel is generally described. In accordance with one example embodiment of the invention, a method to meet a given content throughput using at least one memory channel comprising, comparing the size of at least a portion of received content to a capacity of a single contiguous location within at least one memory channel to meet a given throughput and determining whether to distribute the at least portion of received content across the at least one memory channel, based at least in part, on the comparison.
    Type: Application
    Filed: December 29, 2003
    Publication date: September 8, 2005
    Inventors: Prashant Chandra, Uday Naik, Alok Kumar, Ameya Varde, Donald Hooper, Debra Bernstein, Myles Wilde, Mark Rosenbluth
  • Publication number: 20050108689
    Abstract: A tool that enables a user to perform instruction operand tracing during debug is presented. While executing microcode on a simulator, a history of register and memory values is saved. A graphic user interface uses these values to present a view of the microcode in a thread history. The user can use the thread history to select any given cycle time of the simulation, and switch over to a thread window (or code list view). The instruction that executed at the cycle of interest is marked in the code list view, and right-clicking on the code line, the user is given options, including an option to jump backward in time to the code line where a source variable was set and/or the option to jump forward in time to a code line that used a result variable.
    Type: Application
    Filed: November 13, 2003
    Publication date: May 19, 2005
    Inventors: Donald Hooper, Eric Walker
  • Publication number: 20050066256
    Abstract: Method and apparatus for performing centralized cyclic redundancy checks (CRC). For one embodiment a current thread of execution compares a connection index with that of a previous thread of execution. If they share the same connection index, a CRC calculation may be performed without providing a CRC residue to a centralized CRC unit since the most recently produced CRC residue by would be associated with a preceding sequential cell of the same packet. For an alternative embodiment a current thread of execution requests a CRC calculation and provides a connection index to the centralized CRC unit, which is used to access a content addressable memory (CAM). A hit in the CAM indicates that the CRC unit may use the CRC residue associated with the connection index in the CAM since it would have resulted from a preceding sequential cell.
    Type: Application
    Filed: September 18, 2003
    Publication date: March 24, 2005
    Inventors: Donald Hooper, Matthew Adiletta, Stephanie Hirnak
  • Publication number: 20050038964
    Abstract: A mechanism to process units of data associated with a dependent data stream using different threads of execution and a common data structure in memory. Accessing the common data structure in memory for the processing uses a single read operation and a single write operation. The folding of multiple read-modify-write memory operations in such a manner for multiple multi-threaded stages of processing includes controlling a first stage, which operates on the same data unit as a second stage to pass context state information to the second stage for coherency.
    Type: Application
    Filed: August 14, 2003
    Publication date: February 17, 2005
    Inventors: Donald Hooper, Hugh Wilkinson, Mark Rosenbluth, Debra Bernstein, Michael Fallon, Sanjeev Jain, Myles Wilde, Gilbert Wolrich
  • Publication number: 20050038793
    Abstract: A scheduling mechanism to control transmission of data units, such as variable size packets or fixed size cells, to ports of a network device such as a switching fabric system. The scheduling mechanism maintains scheduling data structures, including an array storing information for available queues of ports and circular buffers representing nonempty port queues of the available port queues according to classes of service. The scheduling mechanism uses the data structures to make scheduling decisions concerning the scheduling of data units in the nonempty port queues for transmission to the ports.
    Type: Application
    Filed: August 14, 2003
    Publication date: February 17, 2005
    Inventors: David Romano, Gilbert Wolrich, Donald Hooper
  • Publication number: 20050039182
    Abstract: A method of and apparatus for associating units of data with threads of a multi-threaded processor for processing, and enabling each thread to perform processing for at least two of the data units during a thread execution period. The thread execution period is divided among phases, and each of the data units processed by a thread is processed by a different one of the phases.
    Type: Application
    Filed: August 14, 2003
    Publication date: February 17, 2005
    Inventors: Donald Hooper, Mark Rosenbluth, Debra Bernstein, Michael Fallon, Sanjeev Jain, Gilbert Wolrich
  • Publication number: 20050025055
    Abstract: In general, in one aspect, the disclosure describes a method of tracking a network statistic stored within a collection of bits. The method includes storing the collection of bits storing the network statistic as at least a first portion and a second portion. The first portion includes a set of least-significant bits and the second portion includes a set of more significant bits. The method also includes incrementing the first portion based on a packet and=determining if the incrementing of the first portion caused a designated bit of the first portion to be set. If it is determined that the incrementing of the first portion caused the designated bit to be set, the method increments the value stored by the second portion and resets the designated bit within the first portion.
    Type: Application
    Filed: July 28, 2003
    Publication date: February 3, 2005
    Inventors: Sanjeev Jain, Donald Hooper
  • Publication number: 20050018601
    Abstract: In general, in one aspect, the disclosure describes a system to process packets received over a network. The system includes a receive process of at least one thread of a network processor to receive data of packets belonging to different flows. The system also includes a transmit process of at least one thread to transmit packets received by the receive process. A scheduler process of at least one thread populates at least one schedule of flow service based, at least in part, on quality of service characteristics associated with the different flows. The schedule identifies different flow candidates for service. The system also includes a shaper process of at least one thread to select from the candidate flows for service from the at least one schedule.
    Type: Application
    Filed: July 1, 2003
    Publication date: January 27, 2005
    Inventors: Suresh Kalkunte, Hugh Wilkinson, Gilbert Wolrich, Mark Rosenbluth, Donald Hooper
  • Publication number: 20040098496
    Abstract: A parallel hardware-based multithreaded processor is described. The processor includes a general purpose processor that coordinates system functions and a plurality of microengines that support multiple program threads. The processor also includes a memory control system that has a first memory controller that sorts memory references based on whether the memory references are directed to an even bank or an odd bank of memory and a second memory controller that optimizes memory references based upon whether the memory references are read references or write references. A program thread communication scheme for packet processing is also described.
    Type: Application
    Filed: July 8, 2003
    Publication date: May 20, 2004
    Applicant: Intel Corporation, a California Corporation
    Inventors: Gilbert Wolrich, Debra Bernstein, Donald Hooper, Matthew J. Adiletta, William Wheeler
  • Patent number: 6625654
    Abstract: A parallel hardware-based multithreaded processor is described. The processor includes a general purpose processor that coordinates system functions and a plurality of microengines that support multiple program threads. The processor also includes a memory control system that has a first memory controller that sorts memory references based on whether the memory references are directed than even bank or an odd bank of memory and a second memory controller that optimizes memory references based upon whether the memory references are read references or write references. A program thread communication scheme for packet processing is also described.
    Type: Grant
    Filed: December 28, 1999
    Date of Patent: September 23, 2003
    Assignee: Intel Corporation
    Inventors: Gilbert Wolrich, Debra Bernstein, Donald Hooper, Matthew J. Adiletta, William Wheeler