Patents by Inventor Gary Tsao

Gary Tsao 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: 10015117
    Abstract: In one embodiment, a method is provided. The method of this embodiment provides storing a packet header at a set of at least one page of memory allocated to storing packet headers, and storing the packet header and a packet payload at a location not in the set of at least one page of memory allocated to storing packet headers.
    Type: Grant
    Filed: July 17, 2015
    Date of Patent: July 3, 2018
    Assignee: Intel Corporation
    Inventors: Linden Cornett, David B. Minturn, Sujoy Sen, Hemal V. Shah, Anshuman Thakur, Gary Tsao, Anil Vasudevan
  • Patent number: 9602443
    Abstract: In one embodiment, a method is provided. The method of this embodiment provides storing a packet header at a set of at least one page of memory allocated to storing packet headers, and storing the packet header and a packet payload at a location not in the set of at least one page of memory allocated to storing packet headers.
    Type: Grant
    Filed: December 1, 2014
    Date of Patent: March 21, 2017
    Assignee: Intel Corporation
    Inventors: Linden Cornett, David B. Minturn, Sujoy Sen, Hemal V. Shah, Anshuman Thakur, Gary Tsao, Anil Vasudevan
  • Publication number: 20150326509
    Abstract: In one embodiment, a method is provided. The method of this embodiment provides storing a packet header at a set of at least one page of memory allocated to storing packet headers, and storing the packet header and a packet payload at a location not in the set of at least one page of memory allocated to storing packet headers.
    Type: Application
    Filed: July 17, 2015
    Publication date: November 12, 2015
    Inventors: Linden Cornett, David B. Minturn, Sujoy Sen, Hemal V. Shah, Anshuman Thakur, Gary Tsao, Anil Vasudevan
  • Publication number: 20150085873
    Abstract: In one embodiment, a method is provided. The method of this embodiment provides storing a packet header at a set of at least one page of memory allocated to storing packet headers, and storing the packet header and a packet payload at a location not in the set of at least one page of memory allocated to storing packet headers.
    Type: Application
    Filed: December 1, 2014
    Publication date: March 26, 2015
    Applicant: Intel Corporation
    Inventors: Linden Cornett, David B. Minturn, Sujoy Sen, Hemal V. Shah, Anshuman Thakur, Gary Tsao, Anil Vasudevan
  • Patent number: 8929381
    Abstract: In one embodiment, a method is provided. The method of this embodiment provides storing a packet header at a set of at least one page of memory allocated to storing packet headers, and storing the packet header and a packet payload at a location not in the set of at least one page of memory allocated to storing packet headers.
    Type: Grant
    Filed: August 6, 2012
    Date of Patent: January 6, 2015
    Assignee: Intel Corporation
    Inventors: Linden Cornett, David B. Minturn, Sujoy Sen, Hemal V. Shah, Anshuman Thakur, Gary Tsao, Anil Vasudevan
  • Publication number: 20110040911
    Abstract: A dual interface coherent and non-coherent network interface controller architecture is generally presented. In this regard, a network interface controller is introduced including a non-coherent bus interface to communicatively couple with devices of a system through a non-coherent protocol, the non-coherent bus interface to facilitate discovery of the network interface controller by an operating system, a coherent bus interface to communicatively couple with devices of the system through a coherent protocol, and a coherency engine to perform coherent transactions over the coherent interface including to snoop for writes on system memory. Other embodiments are also disclosed and claimed.
    Type: Application
    Filed: August 13, 2009
    Publication date: February 17, 2011
    Inventors: Anil Vasudevan, Parthasarathy Sarangam, Sujoy Sen, Gary Tsao, Dave B. Minturn
  • Publication number: 20070147522
    Abstract: An apparatus according to one embodiment may include an integrated circuit. The integrated circuit may include a plurality communication channels. The integrated circuit may be is capable of communicating with at least one remote node external to the integrated circuit, via at least one of the communication channels, in accordance with at least one communication protocol. Each of said plurality of communication channels may provide a communication path between a host system and at least one remote node. The integrated circuit may be further capable of operating each communication channel independently of each other and independently of the host system. Of course, many alternatives, variations, and modifications are possible without departing from this embodiment.
    Type: Application
    Filed: December 28, 2005
    Publication date: June 28, 2007
    Inventors: Pak-Lung Seto, Gary Tsao
  • Publication number: 20070088895
    Abstract: According to one embodiment, an apparatus is disclosed. The apparatus includes a port having a plurality of lanes, a plurality of protocol engines. Each protocol engine is associated with one of the plurality of lanes, and processes tasks to be forwarded to a plurality of remote nodes. The apparatus also includes a first port task scheduler (PTS) to manage the tasks to be forwarded to the one or more of the plurality of protocol engines. The first PTS includes a register to indicate which of the plurality of protocol engines the first PTS is to support.
    Type: Application
    Filed: September 28, 2005
    Publication date: April 19, 2007
    Inventors: Tracey Gustafson, Pak-lung Seto, Gary Tsao, Nai-Chih Chang, Victor Lau
  • Publication number: 20060235999
    Abstract: Provided are techniques for writing doorbell information. In accordance with certain techniques, one or more protection domains are created. One or more data structures are created, wherein each of the data structures is associated with at least one protection domain. One of the data structures is updated. A doorbell structure address for a doorbell structure associated with the updated data structure is computed. Doorbell information is written at the computed doorbell structure address. In accordance with certain other techniques, doorbell information is received. A doorbell structure address is decoded from the doorbell information. A first protection domain identifier is determined from the doorbell structure address. A resource context of a data structure is determined from the doorbell information. The resource context at the doorbell address is read to determine a second protection domain identifier.
    Type: Application
    Filed: April 15, 2005
    Publication date: October 19, 2006
    Inventors: Hemal Shah, Gary Tsao, Arturo Arizpe, Ali Oztaskin
  • Publication number: 20060149919
    Abstract: Provided are a method, system, and program for translating virtual addresses of memory locations within pages of different sizes. In one embodiment, a translation entry containing a physical address is stored in a data structure table for each page. Each virtual address includes a page virtual address which identifies the translation entry containing the physical address of the page containing the memory location. The virtual address may be translated to a translation entry index using the size of the page containing the memory location.
    Type: Application
    Filed: January 5, 2005
    Publication date: July 6, 2006
    Inventors: Arturo Arizpe, Gary Tsao
  • Publication number: 20060136697
    Abstract: Provided are a method, system, and program for updating a cache in which, in one aspect of the description provided herein, changes to data structure entries in the cache are selectively written back to the source data structure table maintained in the host memory. In one embodiment, translation and protection table (TPT) contents of an identified cache entry are written to a source TPT in host memory as a function of an identified state transition of the cache entry in connection with a memory operation and the memory operation. Other embodiments are described and claimed.
    Type: Application
    Filed: December 16, 2004
    Publication date: June 22, 2006
    Inventors: Gary Tsao, Hemal Shah, Arturo Arizpe
  • Publication number: 20060133396
    Abstract: In one embodiment, a method is provided. The method of this embodiment provides determining if a management queue can be created, and if a management queue can be created, allocating virtually contiguous memory to a management queue associated with a device, registering the management queue, and creating a management queue context.
    Type: Application
    Filed: December 20, 2004
    Publication date: June 22, 2006
    Inventors: Hemal Shah, Gary Tsao, Arturo Arizpe, Scott Hahn, Ali Oztaskin, Greg Cummings, Ellen Deleganes
  • Publication number: 20060072564
    Abstract: In one embodiment, a method is provided. The method of this embodiment provides storing a packet header at a set of at least one page of memory allocated to storing packet headers, and storing the packet header and a packet payload at a location not in the set of at least one page of memory allocated to storing packet headers.
    Type: Application
    Filed: May 26, 2005
    Publication date: April 6, 2006
    Inventors: Linden Cornett, David Minturn, Sujoy Sen, Hemal Shah, Anshuman Thakur, Gary Tsao, Anil Vasudevan
  • Publication number: 20060004941
    Abstract: Provided are a method, system, and program for caching a virtualized data structure table. In one embodiment, an input/output (I/O) device has a cache subsystem for a data structure table which has been virtualized. As a consequence, the data structure table cache may be addressed using a virtual address or index. For example, a network adapter may maintain an address translation and protection table (TPT) which has virtually contiguous data structures but not necessarily physically contiguous data structures in system memory. TPT entries may be stored in a cache and addressed using a virtual address or index. Mapping tables may be stored in the cache as well and addressed using a virtual address or index.
    Type: Application
    Filed: June 30, 2004
    Publication date: January 5, 2006
    Inventors: Hemal Shah, Ashish Choubal, Gary Tsao, Arturo Arizpe, Sarita Saraswat
  • Publication number: 20060004983
    Abstract: Provided are a method, system, and program for managing memory options for a device such as an I/O device. Private addresses provided by logic blocks within the device may be transparently routed to either an optional external memory or to system memory, depending upon which of the optional memories the private address has been mapped.
    Type: Application
    Filed: June 30, 2004
    Publication date: January 5, 2006
    Inventors: Gary Tsao, Quang Le, Ashish Choubal, Hemal Shah
  • Publication number: 20050228922
    Abstract: Provided are techniques for interrupt processing. An Input/Output device determines that an event has occurred. The Input/Output device determines a processor identifier and determines an event data structure identifier for an event data structure into which data for the event is stored using the processor identifier. The Input/Output device also determines a vector identifier for an interrupt message vector into which an interrupt message for the event is written. Then, interrupt message data is written to the interrupt message vector to generate an interrupt.
    Type: Application
    Filed: March 31, 2004
    Publication date: October 13, 2005
    Inventors: Gary Tsao, Hemal Shah, Gregory Cummings
  • Publication number: 20050228920
    Abstract: Provided are techniques for interrupt processing. An Input/Output device determines that an event has occurred. The Input/Output device determines a state of an event data structure. The Input/Output device writes an event entry into the event data structure in response to determining that the event has occurred. After writing the event entry, the Input/Output device determines whether to generate an interrupt or not based on the state of the event data structure. Additionally provided are techniques for interrupt processing in which an I/O device driver determines that an interrupt has occurred. The I/O device driver reads an event entry in an event data structure in response to determining that the interrupt has occurred. The I/O device driver updates a state of a structure state indicator to enable/disable interrupts.
    Type: Application
    Filed: March 31, 2004
    Publication date: October 13, 2005
    Inventors: Hemal Shah, Gary Tsao, Ali Oztaskin
  • Publication number: 20050216597
    Abstract: A method and system for transmitting packets. Packets may be transmitted when a protocol control block is copied from a host processing system to a network protocol offload engine. Message information that contains packet payload addresses may be provided to the network protocol offload engine to generate a plurality of message contexts in the offload engine. With the message contexts, protocol processing may be performed at the offload engine while leaving the packet payload in the host memory. Thus, packet payloads may be transmitted directly from the host memory to a network communication link during transmission of the packets by the offload engine. Other embodiments are also described.
    Type: Application
    Filed: March 24, 2004
    Publication date: September 29, 2005
    Inventors: Hemal Shah, Gary Tsao, Ashish Choubal, Harlan Beverly, Christopher Foulds
  • Publication number: 20050060442
    Abstract: Provided are a method, system, and program for managing data transmission from a source to a destination through a network. The destination imposes a window value on the source which limits the quantity of data packets which can be sent from the source to the destination without receiving an acknowledgment of being received by the destination. In one embodiment, the source imposes a second window value, smaller than the destination window value, which limits even further the quantity of data packets which can be sent from the source to the destination without receiving an acknowledgment of being received by the destination. In another embodiment, a plurality of direct memory access connections are established between the source and a plurality of specified memory locations of a plurality of destinations.
    Type: Application
    Filed: September 15, 2003
    Publication date: March 17, 2005
    Inventors: Harlan Beverly, Ashish Choubal, Gary Tsao, Arturo Arizpe