Patents by Inventor Annie Foong

Annie Foong 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).

  • Publication number: 20140281062
    Abstract: Techniques and mechanisms for providing access to a function with an input/output (I/O) device. In an embodiment, a main memory of a computer system including the I/O device stores a function-context data structure associating a function with a context for an access to the function. The I/O device stores a configuration for the I/O device to provide the function. In another embodiment, the software process exchanges information with the function-context data structure for the access to the function. The I/O device performs a synchronization of the function-context data structure and the configuration data structure with respect to one another, wherein the function-context data structure operates as a register level interface which interfaces the I/O device and the software process with one another.
    Type: Application
    Filed: March 15, 2013
    Publication date: September 18, 2014
    Inventors: David J. Harriman, Annie Foong, Debendra Das Sharma
  • Publication number: 20140089728
    Abstract: A disk array redundancy controller ensures integrity of a mirrored or RAID storage array supporting a host system and minimizes recovery time responsive to a storage volume failure by traversing caches of recently written blocks to identify partially flushed stripes of data and recovering the inconsistent stripes on each of the storage volumes based on a master copy derived from the scan of all pre-failure caches of the storage array. The storage array employs nonvolatile caches in conjunction with solid state drive (SSD) storage volumes, allowing post-failure recovery of recently written blocks. A cache depth at least sufficient to store the largest stripe, or set of blocks, from the host ensures recovery of the entire stripe from a collective scan of the caches of all storage volumes of the storage array.
    Type: Application
    Filed: September 27, 2012
    Publication date: March 27, 2014
    Inventors: Bryan E. Veal, Annie Foong
  • Patent number: 8645594
    Abstract: Techniques herein include systems and methods for driver-assisted BAR mapping that virtualize PCI functions, but without virtualizing the storage media itself. Such techniques make use of unused BARs (Base Address Registers) of a master (Operating system-facing) device to gain access to other PCIe logical instances, while still exposing only a single PCIe function (connection or channel) to system software. This technique provides a new concept of logical PCIe device instances through BAR mapping by making use of unused BARs to extend access to any number of PCIe instances or memory-mapped I/O devices behind a master device such that only a single PCIe function is exposed to system software. Embodiments can thus extend access to one or more additional storage devices through one level of BAR indirection. As a result, such techniques and embodiments enable the multiplication of storage capacity and performance through the aggregation of multiple, similar hardware components.
    Type: Grant
    Filed: June 29, 2012
    Date of Patent: February 4, 2014
    Assignee: Intel Corporation
    Inventors: Annie Foong, Pak-Lung Seto
  • Patent number: 8626955
    Abstract: A computer system may comprise a plurality of cores that may process the tasks determined by the operating system. A network device may direct a first set of packets to a first core using a flow-spreading technique such as receive side scaling (RSS). However, the operating system may re-provision a task from the first core to a second core to balance the load, for example, on the computer system. The operating system may determine an identifier of the second core using a new data field in the socket calls to track the identifier of the second core. The operating system may provide the identifier of the second core to a network device. The network device may then direct a second set of packets to the second core using the identifier of the second core.
    Type: Grant
    Filed: September 29, 2008
    Date of Patent: January 7, 2014
    Assignee: Intel Corporation
    Inventors: Bryan Veal, Annie Foong
  • Publication number: 20140006659
    Abstract: Techniques herein include systems and methods for driver-assisted BAR mapping that virtualize PCI functions, but without virtualizing the storage media itself. Such techniques make use of unused BARs (Base Address Registers) of a master (Operating system-facing) device to gain access to other PCIe logical instances, while still exposing only a single PCIe function (connection or channel) to system software. This technique provides a new concept of logical PCIe device instances through BAR mapping by making use of unused BARs to extend access to any number of PCIe instances or memory-mapped I/O devices behind a master device such that only a single PCIe function is exposed to system software. Embodiments can thus extend access to one or more additional storage devices through one level of BAR indirection. As a result, such techniques and embodiments enable the multiplication of storage capacity and performance through the aggregation of multiple, similar hardware components.
    Type: Application
    Filed: June 29, 2012
    Publication date: January 2, 2014
    Inventors: Annie Foong, Pak-Lung Seto
  • Publication number: 20130339565
    Abstract: Techniques and mechanisms for managing resources of an aggregate device which spans multiple physical devices of a computer platform. In an embodiment, an aggregation device coupled to a host bus of the computer platform receives resource information generated by a pre-boot software process of the computer platform. In another embodiment, the aggregation device, based on the received resource information, represents a resource in a first input/output (I/O) device to a host operating system (OS) as residing in the aggregation device, the first I/O device coupled to the aggregation device via a host bus for exchanging communications referencing a shared address space.
    Type: Application
    Filed: December 22, 2011
    Publication date: December 19, 2013
    Inventors: Bryan E. Veal, Eric R. Wehage, Annie Foong
  • Publication number: 20130080674
    Abstract: An embodiment of the invention includes (i) receiving a core identifier that corresponds with a processor source core; (ii) receiving an input/output request, produced from the source core, that is associated with the core identifier; (iii) and directing an interrupt, which corresponds to the request, to the source core based on the core identifier. Other embodiments are described herein.
    Type: Application
    Filed: November 20, 2012
    Publication date: March 28, 2013
    Inventors: Bryan E. Veal, Annie Foong
  • Patent number: 8321615
    Abstract: An embodiment of the invention includes (i) receiving a core identifier that corresponds with a processor source core; (ii) receiving an input/output request, produced from the source core, that is associated with the core identifier; (iii) and directing an interrupt, which corresponds to the request, to the source core based on the core identifier. Other embodiments are described herein.
    Type: Grant
    Filed: December 18, 2009
    Date of Patent: November 27, 2012
    Assignee: Intel Corporation
    Inventors: Annie Foong, Bryan E. Veal
  • Patent number: 8090859
    Abstract: Proxy nodes perform TCP/IP processing on behalf of application nodes, utilize lightweight protocols to communicate with application nodes, and communicate with network nodes and network clients using Transmission Control Protocol/Internet Protocol (TCP/IP).
    Type: Grant
    Filed: January 24, 2006
    Date of Patent: January 3, 2012
    Assignee: Intel Corporation
    Inventors: Hemal V. Shah, Greg J. Regnier, Annie Foong
  • Publication number: 20110153893
    Abstract: An embodiment of the invention includes (i) receiving a core identifier that corresponds with a processor source core; (ii) receiving an input/output request, produced from the source core, that is associated with the core identifier; (iii) and directing an interrupt, which corresponds to the request, to the source core based on the core identifier. Other embodiments are described herein.
    Type: Application
    Filed: December 18, 2009
    Publication date: June 23, 2011
    Inventors: Annie Foong, Bryan E. Veal
  • Patent number: 7836195
    Abstract: In one embodiment, the present invention includes a method for receiving a first packet associated with a first network flow in a first descriptor queue associated with a first hardware thread, receiving a marker in the first descriptor queue to indicate migration of the first network flow from the first hardware thread to a second hardware thread, and processing a second packet of the first network flow following the first packet in order in the second hardware thread.
    Type: Grant
    Filed: February 27, 2008
    Date of Patent: November 16, 2010
    Assignee: Intel Corporation
    Inventors: Bryan Veal, Annie Foong
  • Publication number: 20100083259
    Abstract: A computer system may comprise a plurality of cores that may process the tasks determined by the operating system. A network device may direct a first set of packets to a first core using a flow-spreading technique such as receive side scaling (RSS). However, the operating system may re-provision a task from the first core to a second core to balance the load, for example, on the computer system. The operating system may determine an identifier of the second core using a new data field in the socket calls to track the identifier of the second core. The operating system may provide the identifier of the second core to a network device. The network device may then direct a second set of packets to the second core using the identifier of the second core.
    Type: Application
    Filed: September 29, 2008
    Publication date: April 1, 2010
    Inventors: Bryan Veal, Annie Foong
  • Patent number: 7650488
    Abstract: In an embodiment, a method is provided that may include providing a first address space exclusively and coherently accessible by a first processor core partition in a platform. A second address space may be provided in this embodiment that is exclusively and coherently accessible by a second processor core partition in the platform. Also in this embodiment, a third address space in the platform may be provided that is accessible, at least in part, by both the first and second processor core partitions and may be to permit communication between the first and second processor core partitions of at least one packet and at least one descriptor associated with the at least one packet. The at least one descriptor may indicate, at least in part, one or more locations in the third address space to store, at least in part, the at least one packet. Of course, many alternatives, modifications, and variations are possible without departing from this embodiment.
    Type: Grant
    Filed: June 18, 2008
    Date of Patent: January 19, 2010
    Assignee: Intel Corporation
    Inventors: Annie Foong, Bryan E. Veal, Arun Raghunath
  • Publication number: 20090319705
    Abstract: In an embodiment, a method is provided that may include providing a first address space exclusively and coherently accessible by a first processor core partition in a platform. A second address space may be provided in this embodiment that is exclusively and coherently accessible by a second processor core partition in the platform. Also in this embodiment, a third address space in the platform may be provided that is accessible, at least in part, by both the first and second processor core partitions and may be to permit communication between the first and second processor core partitions of at least one packet and at least one descriptor associated with the at least one packet. The at least one descriptor may indicate, at least in part, one or more locations in the third address space to store, at least in part, the at least one packet. Of course, many alternatives, modifications, and variations are possible without departing from this embodiment.
    Type: Application
    Filed: June 18, 2008
    Publication date: December 24, 2009
    Inventors: Annie Foong, Bryan E. Veal, Arun Raghunath
  • Publication number: 20090213732
    Abstract: In one embodiment, the present invention includes a method for receiving a first packet associated with a first network flow in a first descriptor queue associated with a first hardware thread, receiving a marker in the first descriptor queue to indicate migration of the first network flow from the first hardware thread to a second hardware thread, and processing a second packet of the first network flow following the first packet in order in the second hardware thread.
    Type: Application
    Filed: February 27, 2008
    Publication date: August 27, 2009
    Inventors: Bryan Veal, Annie Foong
  • Publication number: 20090086736
    Abstract: Methods and apparatus relating to notification of out-of-order packets are described. In an embodiment, data such as a sequence number and a flow identifier may be extracted from a packet. The extracted data may be used to check the extracted sequence number against an expected sequence number and indicate that the packet is an out-of-order packet. Other embodiments are also disclosed.
    Type: Application
    Filed: September 28, 2007
    Publication date: April 2, 2009
    Inventors: Annie Foong, Bryan E. Veal
  • Publication number: 20090006521
    Abstract: Receive side scaling in a network system may be improved by moving the task of adapting the load distribution from the operating system (“OS”) to the network device. A load feedback mechanism may be used for the OS to report per-core load to the network device. With per-core load information from the OS as well as its own knowledge of new flows, the network device is able to map new flows to the least-utilized cores by changing these cores' entries in an indirection table in the network device directly.
    Type: Application
    Filed: June 29, 2007
    Publication date: January 1, 2009
    Inventors: Bryan E. Veal, Annie Foong
  • Publication number: 20080086575
    Abstract: Techniques are described that can be used to implement a network interface. A network interface may be communicatively coupled to a general purpose core or hardware thread. Various operations can be assigned to be performed by the general purpose core, thereby at least to provide flexible operation of the network interface. The general purpose core may be capable to issue inter-processor interrupts to other cores or hardware threads to request processing. The other cores or hardware threads may respond to inter-processor interrupts by executing one or more interrupt service routine. The other cores or hardware threads may be capable to process network protocol units received by the network interface.
    Type: Application
    Filed: October 6, 2006
    Publication date: April 10, 2008
    Inventors: Annie Foong, Bryan Veal
  • Patent number: 7305493
    Abstract: An apparatus and a system may include an adaptation module, a plurality of Direct Transport Interfaces (DTIs), a DTI accelerator, and a Transport Control Protocol/Internet Protocol (TCP/IP) accelerator. The adaptation module may provide a translated sockets call from an application program to one of the DTIs, where an included set of memory structures may couple the translated sockets call to the DTI accelerator, which may in turn couple the set of memory structures to the TCP/IP accelerator. An article may include data causing a machine to perform a method including: receiving an application program sockets call at the adaptation module, deriving a translated sockets call from the application program sockets call, receiving the translated sockets call at a DTI, coupling the translated sockets call to a DTI accelerator using a set of memory structures in the DTI, and coupling the set of memory structures to a TCP/IP accelerator.
    Type: Grant
    Filed: November 27, 2002
    Date of Patent: December 4, 2007
    Assignee: Intel Corporation
    Inventors: Gary L. McAlpine, David B. Minturn, Hemal V. Shah, Annie Foong, Greg J. Regnier, Vikram A. Saletore
  • Publication number: 20070011358
    Abstract: Mechanisms to implement memory management to enable protocol-aware asynchronous, zero-copy transmits. A transport protocol engine exposes interfaces via which memory buffers from a memory pool in operating system (OS) kernel space may be allocated to applications running in an OS user layer. The memory buffers may be used to store data that is to be transferred to a network destination using a zero-copy transmit mechanism, wherein the data is directly transmitted from the memory buffers to the network via a network interface controller. The transport protocol engine also exposes a buffer reuse API to the user layer to enable applications to obtain buffer availability information maintained by the protocol engine. In view of the buffer availability information, the application may adjust its data transfer rate.
    Type: Application
    Filed: June 30, 2005
    Publication date: January 11, 2007
    Inventors: John Wiegert, Annie Foong