Patents by Inventor Donald F. Hooper

Donald F. 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: 8713569
    Abstract: A system apparatus and method for supporting one or more functions in an IO virtualization environment. One or more threads are dynamically associated with, and executing on behalf of, one or more functions in a device.
    Type: Grant
    Filed: September 26, 2007
    Date of Patent: April 29, 2014
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Peter Barry, Praveen Mosur
  • Patent number: 7991983
    Abstract: A parallel hardware-based multithreaded processor. The processor includes a general purpose processor that coordinates system functions and a plurality of microengines that support multiple hardware threads or contexts. The processor maintains execution threads. The execution threads access a register set organized into a plurality of relatively addressable windows of registers that are relatively addressable per thread.
    Type: Grant
    Filed: June 3, 2009
    Date of Patent: August 2, 2011
    Assignee: Intel Corporation
    Inventors: Gilbert Wolrich, Matthew J Adiletta, William R. Wheeler, Debra Bernstein, Donald F. Hooper
  • Patent number: 7751402
    Abstract: A network processor that has multiple processing elements, each supporting multiple simultaneous program threads with access to shared resources in an interface. Packet data is received from high-speed ports in segments and each segment is assigned to one of the program threads. Each packet may be assigned to a single program thread, two program threads—one for header segment processing and the other for handling payload segment(s)—or a different program thread for segment of data in a packet. Dedicated inputs for ready status and sequence numbers provide assistance needed for receiving the packet data over a high speed port. The dedicated inputs are used to monitor ready flags from the high speed ports on a cycle-by-cycle basis. The sequence numbers are used by the assigned threads to maintain ordering of segments within a packet, as well as to order the writes of the complete packets to transmit queues.
    Type: Grant
    Filed: October 10, 2003
    Date of Patent: July 6, 2010
    Assignee: Intel Corporation
    Inventors: Gilbert Wolrich, Debra Bernstein, Matthew J. Adiletta, Donald F. Hooper
  • Patent number: 7684970
    Abstract: In accordance with one exemplary embodiment, the present disclosure includes a method for executing application software during a simulation that models a processor for which the application software was developed. The method may include capturing results of the simulation to produce a simulation history. The method may also include providing a graphical user interface (GUI) that includes one or more cross-linked packet-centric views of the simulation history for packets operated on by the application software during the simulation. The cross-linked packet-centric views may include a packet status list GUI, a packet event list GUI, a packet dataflow GUI, a thread list GUI, and a thread history GUI. Of course, many alternatives, variations and modifications are possible without departing from this embodiment.
    Type: Grant
    Filed: June 25, 2004
    Date of Patent: March 23, 2010
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Eric Walker, Dennis Rivard, Mark B. Rosenbluth
  • Publication number: 20090307469
    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 hardware threads or contexts. The processor maintains execution threads. The execution threads access a register set organized into a plurality of relatively addressable windows of registers that are relatively addressable per thread.
    Type: Application
    Filed: June 3, 2009
    Publication date: December 10, 2009
    Applicant: Intel Corporation
    Inventors: Gilbert Wolrich, Matthew J. Adiletta, William R. Wheeler, Debra Bernstein, Donald F. Hooper
  • Patent number: 7546444
    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 hardware threads or contexts (THREAD—3 . . . THREAD—0). The processor maintains execution threads (THREAD—3 . . . THREAD—0) access a register set organized into a plurality of relatively addressable windows of registers that are relatively addressable per thread (THREAD—3 . . . THREAD—0).
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: June 9, 2009
    Assignee: Intel Corporation
    Inventors: Gilbert Wolrich, Matthew J. Adiletta, William R. Wheeler, Debra Bernstein, Donald F. Hooper
  • Patent number: 7515588
    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: Grant
    Filed: March 18, 2004
    Date of Patent: April 7, 2009
    Assignee: Intel Corporation
    Inventors: Uday R. Naik, Alok Kumar, Eswar Eduri, Donald F. Hooper
  • Publication number: 20090083743
    Abstract: A system apparatus and method for supporting one or more functions in an IO virtualization environment. One or more threads are dynamically associated with, and executing on behalf of, one or more functions in a device.
    Type: Application
    Filed: September 26, 2007
    Publication date: March 26, 2009
    Inventors: Donald F. Hooper, Peter Barry, Praveen Mosur
  • Patent number: 7480706
    Abstract: A method of processing network data in a network processor includes assigning a group of receive threads to process network data from a port. Each of the group of receive threads process network data in a round-robin fashion.
    Type: Grant
    Filed: November 10, 2000
    Date of Patent: January 20, 2009
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Matthew J. Adiletta
  • Patent number: 7477641
    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: Grant
    Filed: December 30, 2004
    Date of Patent: January 13, 2009
    Assignee: Intel Corporation
    Inventors: Sanjeev Jain, Donald F. Hooper
  • Patent number: 7471688
    Abstract: A system and method for controlling transmission of cells is described. The cells are associated with virtual circuits that either require shaping according to constant bit rate (CBR) or real-time variable bit rate (rt-VBR), or no shaping with transmit selection based on priority (for services other than CBR and rt-VBR). The system transmits the shaped and unshaped traffic using one or more circular control structures. The control structures have time slots at the granularity of the maximum system transmit rate.
    Type: Grant
    Filed: June 18, 2002
    Date of Patent: December 30, 2008
    Assignee: Intel Corporation
    Inventors: Suresh S. Kalkunte, Donald F. Hooper
  • Patent number: 7443836
    Abstract: A device and method for processing a data packet at a device are described. The device receives data packets and determines available memory in one or more of local memories of a plurality of execution threads. The device stores packet information in an available one of the local memories of the execution threads.
    Type: Grant
    Filed: June 16, 2003
    Date of Patent: October 28, 2008
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Mark B. Rosenbluth, Gilbert Wolrich, Matthew J. Adiletta, Hugh M. Wilkinson, III, Robert J. Kushlis
  • Patent number: 7441245
    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: Grant
    Filed: August 14, 2003
    Date of Patent: October 21, 2008
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Mark Rosenbluth, Debra Bernstein, Michael F. Fallon, Sanjeev Jain, Gilbert M. Wolrich
  • Patent number: 7434221
    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 is presented. 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: Grant
    Filed: September 28, 2005
    Date of Patent: October 7, 2008
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Matthew J. Adiletta, Gilbert M. Wolrich
  • Patent number: 7433307
    Abstract: Providing flow control includes receiving at a router an indication of the ability of each one of multiple ports not directly connected to the router to receive data from the router and controlling transmission of data from the router to the multiple ports based at least on the indication.
    Type: Grant
    Filed: November 5, 2002
    Date of Patent: October 7, 2008
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Myles J. Wilde, Matthew J. Adiletta, Gilbert Wolrich
  • Patent number: 7421572
    Abstract: A processor such as a parallel hardware-based multithreaded processor (12) is described. The processor (12) can execute a computer instruction that is a branch instruction that causes an instruction sequence in the processor to branch on any specified bit of a register (80, 78, 76b) being set or cleared and which specifies which bit of the specified register to use as a branch control bit.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: September 2, 2008
    Assignee: Intel Corporation
    Inventors: Gilbert Wolrich, Matthew J. Adiletta, William R. Wheeler, Debra Bernstein, Donald F. Hooper
  • Patent number: 7391772
    Abstract: In general, in one aspect, the disclosure describes a technique of determining forwarding information for at least a sub-set of members of a multi cast group, and sending, toward a downstream entity, at most a single copy of data to be multicasted to the sub-set of members and the determined forwarding information.
    Type: Grant
    Filed: April 8, 2003
    Date of Patent: June 24, 2008
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Suresh S. Kalkunte
  • Patent number: 7352769
    Abstract: A machine-based method includes scheduling data units into respective time slots of reservation groups by representing the time slots in a base vector. The time slots of each of the reservation groups corresponds to a contiguous block in the base vector. Groups of time slots are represented in a higher-level vector having fewer elements than the base vector.
    Type: Grant
    Filed: September 12, 2002
    Date of Patent: April 1, 2008
    Assignee: Intel Corporation
    Inventors: Donald F. Hooper, Suresh Kalkunte
  • Patent number: 7343563
    Abstract: A graphical user interface (GUI) includes state indicators which show states of execution of threads running in microengines of a processor. The state indicators show the states of execution as functions of clocking in the processor. The GUI also includes a window showing computer code corresponding to one of the threads.
    Type: Grant
    Filed: July 2, 2003
    Date of Patent: March 11, 2008
    Assignee: Intel Corporation
    Inventors: Richard D. Muratori, Myles J. Wilde, Donald F. Hooper
  • Patent number: 7336606
    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: Grant
    Filed: August 14, 2003
    Date of Patent: February 26, 2008
    Assignee: Intel Corporation
    Inventors: David Romano, Gilbert M. Wolrich, Donald F. Hooper