Patents by Inventor Marc Schaub

Marc Schaub 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: 12203765
    Abstract: Presented are techniques of identifying, processing and displaying data point clusters associated with map information in an efficient manner Methods and systems are disclosed which process map information to identify clusters of requested data points for display, based on iterative clustering and filtering of the data points. Methods and systems are also disclosed which generate polygons representing the clusters. The amount of data to be processed and/or displayed can be reduced, without loss of any associated information content in a displayed map.
    Type: Grant
    Filed: November 7, 2023
    Date of Patent: January 21, 2025
    Assignee: Google LLC
    Inventors: Steve Chien, Mark Yinan Li, Marc Schaub, Benjamin Anderson, James Aspinall, Zhou Bailiang, Ruwen Hess
  • Publication number: 20240077324
    Abstract: Presented are techniques of identifying, processing and displaying data point clusters associated with map information in an efficient manner Methods and systems are disclosed which process map information to identify clusters of requested data points for display, based on iterative clustering and filtering of the data points. Methods and systems are also disclosed which generate polygons representing the clusters. The amount of data to be processed and/or displayed can be reduced, without loss of any associated information content in a displayed map.
    Type: Application
    Filed: November 7, 2023
    Publication date: March 7, 2024
    Inventors: Steve Chien, Mark Yinan Li, Marc Schaub, Benjamin Anderson, James Aspinall, Zhou Bailiang, Ruwen Hess
  • Patent number: 10415987
    Abstract: Presented are techniques of identifying, processing and displaying data point clusters (850, 851) associated with map information (200) in an efficient manner. Methods and systems are disclosed which process map information (200) to identify clusters (850, 851) of requested data points for display (1020), based on iterative clustering and filtering of the data points. Methods and systems are also disclosed which generate polygons (1860, 1861, 1901-05) representing the clusters. The amount of data to be processed and/or displayed can be reduced, without loss of any associated information content in a displayed map.
    Type: Grant
    Filed: June 24, 2016
    Date of Patent: September 17, 2019
    Assignee: Google LLC
    Inventors: Steve Chien, Mark Yinan Li, Marc Schaub, Benjamin Anderson, James Aspinall, Zhou Bailiang, Ruwen Hess
  • Publication number: 20190101402
    Abstract: Presented are techniques of identifying, processing and displaying data point clusters (850, 851) associated with map information (200) in an efficient manner. Methods and systems are disclosed which process map information (200) to identify clusters (850, 851) of requested data points for display (1020), based on iterative clustering and filtering of the data points. Methods and systems are also disclosed which generate polygons (1860, 1861, 1901-05) representing the clusters. The amount of data to be processed and/or displayed can be reduced, without loss of any associated information content in a displayed map.
    Type: Application
    Filed: June 24, 2016
    Publication date: April 4, 2019
    Applicant: Google Inc.
    Inventors: Steve Chien, Mark Yinan Li, Marc Schaub, Benjamin Anderson, James Aspinall, Zhou Bailiang, Ruwen Hess
  • Patent number: 9003165
    Abstract: A system in accordance with the invention may include a data memory storing a multi-dimensional (e.g., a two-dimensional) data structure. An address generation unit is provided to calculate real addresses in order to access the multi-dimensional data structure in a desired pattern. The address generation unit may be configured to calculate real addresses by moving across the multi-dimensional data structure between pairs of end points. The pairs of end points (as well as parameters such as the step size between the end points) may be pre-programmed into the address generation unit prior to accessing the multi-dimensional data structure. A processor, such as a vector processor, may be configured to access (e.g., read or write data to) the data structure at the real addresses calculated by the address generation unit.
    Type: Grant
    Filed: December 9, 2008
    Date of Patent: April 7, 2015
    Inventors: Shlomo Selim Rakib, Marc Schaub
  • Patent number: 8713285
    Abstract: An apparatus, system, and method for providing a multi-dimensional data structure and address generation unit configured to calculate real addresses in order to access the multi-dimensional data structure in a desired pattern. The address generation unit may be configured to calculate the real addresses by executing a series of nested loops pre-programmed into the address generation unit prior to accessing the multi-dimensional data structure. The address generation unit may receive as inputs a set of parameters defining characteristics of the nested loops such as a starting offset, number of iterations or step size for loops, data structure dimensions, or loop starting point inheritance. A vector processor may then access the multi-dimensional data structure at the real addresses calculated by the address generation unit. The multi-dimensional data structure may be stored in a buffer in a data memory.
    Type: Grant
    Filed: December 9, 2008
    Date of Patent: April 29, 2014
    Inventors: Shlomo Selim Rakib, Marc Schaub
  • Patent number: 8359455
    Abstract: A system and method for generating a real address in data memory in response to a read/write request may include generating an access request to at least one of read and write data to the data memory. A connection identifier (ID), received in association with the access request; may include a buffer ID designating a buffer in the data memory in which to access the data, and a port ID designating a pattern in which to access the data in the buffer. The method may further include translating the connection ID into the real address of the data memory, and accessing the data memory at a location corresponding to the real address. Different types of buffers, such as point-to-point, scatter, and gather buffers may be used, and different patterns, such as first-in-first out (FIFO), nested loop, matrix transforms may be used.
    Type: Grant
    Filed: December 9, 2008
    Date of Patent: January 22, 2013
    Inventors: Shlomo Selim Rakib, Marc Schaub
  • Publication number: 20100281236
    Abstract: An apparatus for processing data may include an array of processing elements (such as an n×m or n×n array of processing elements) configured to simultaneously perform operations on a plurality of data elements using a single instruction. Each processing element in the array may be configured to transfer data directly to at least one neighboring processing element within the array. In selected embodiments, the apparatus may include exchange registers to temporarily store data transferred between neighboring processing elements.
    Type: Application
    Filed: April 30, 2009
    Publication date: November 4, 2010
    Applicant: Novafora, Inc.
    Inventors: Shlomo Selim Rakib, Muhammad Ahmed, Marc Schaub
  • Publication number: 20100281192
    Abstract: An apparatus for transferring data between buffers within a data processing architecture includes first and second memory devices. The apparatus further includes a first connection manager associated with a first buffer in the first memory device, and a second connection manager associated with a second buffer in the second memory device. The first and second connection managers manage data transfers between the first and second buffers. The first connection manager is configured to receive a token from the second connection manager in order to trigger data transfer between the first buffer and the second buffer. The first connection manager is further configured to initiate a data transfer between the first and second buffers in response to receiving the token. This token-based method for initiating data transfers between the connection managers requires little or no CPU intervention.
    Type: Application
    Filed: April 30, 2009
    Publication date: November 4, 2010
    Applicant: Novafora, Inc.
    Inventors: Shlomo Selim Rakib, Marc Schaub
  • Publication number: 20100281234
    Abstract: A method includes providing a processor configured to execute instructions. The method may further include providing a first set of registers in the processor to store first data and first instructions associated with a first thread, and providing a second set of registers in the processor to store second data and second instructions associated with a second thread. The method may further include transmitting the first data and first instructions associated with the first thread to the first set of registers, and executing the first instructions in order to process the first data. The method may further include transmitting the second data and second instructions to the second set of registers while executing the first instructions and processing the first data. A corresponding apparatus is also disclosed and claimed herein.
    Type: Application
    Filed: April 30, 2009
    Publication date: November 4, 2010
    Applicant: Novafora, Inc.
    Inventors: MUHAMMAD AHMED, Marc Schaub, Shlomo Selim Rakib
  • Publication number: 20100145992
    Abstract: An apparatus, system, and method in accordance with the invention may include providing a multi-dimensional data structure and providing an address generation unit configured to calculate real addresses in order to access the multi-dimensional data structure in a desired pattern. The address generation unit may be configured to calculate the real addresses by executing a series of nested loops pre-programmed into the address generation unit prior to accessing the multi-dimensional data structure. The address generation unit may receive as inputs a set of parameters defining the characteristics of the nested loops. The method may then include accessing the data structure at the real addresses calculated by the address generation unit.
    Type: Application
    Filed: December 9, 2008
    Publication date: June 10, 2010
    Applicant: Novafora, Inc.
    Inventors: Shlomo Selim Rakib, Marc Schaub
  • Publication number: 20100145993
    Abstract: A system in accordance with the invention may include a data memory storing a multi-dimensional (e.g., a two-dimensional) data structure. An address generation unit is provided to calculate real addresses in order to access the multi-dimensional data structure in a desired pattern. The address generation unit may be configured to calculate real addresses by moving across the multi-dimensional data structure between pairs of end points. The pairs of end points (as well as parameters such as the step size between the end points) may be pre-programmed into the address generation unit prior to accessing the multi-dimensional data structure. A processor, such as a vector processor, may be configured to access (e.g., read or write data to) the data structure at the real addresses calculated by the address generation unit.
    Type: Application
    Filed: December 9, 2008
    Publication date: June 10, 2010
    Applicant: Novafora, Inc.
    Inventors: Shlomo Selim Rakib, Marc Schaub
  • Publication number: 20100146238
    Abstract: A system and method for generating a real address in data memory in response to a read/write request may include generating an access request to at least one of read and write data to a data memory. A connection ID may be received in association with the access request. This connection ID may include a buffer ID designating a buffer in data memory to which to access the data, and a port ID designating a pattern in which to access the data in the buffer. The method may further include translating the connection ID into a real address of the data memory, and accessing the data in the data memory at a location corresponding to the real address.
    Type: Application
    Filed: December 9, 2008
    Publication date: June 10, 2010
    Applicant: Novafora, Inc.
    Inventors: Shlomo Selim Rakib, Marc Schaub
  • Patent number: 7190695
    Abstract: Distributing packets from an input link to multiple output links involves categorizing each incoming packet, selecting a mapping algorithm based on the packet category, and using the selected mapping algorithm for each packet to determine an output link for the respective packet. If packets are from a category that requires the order of the packets to be maintained, then the selected mapping algorithm causes packets from the same set of packets to be distributed to the same output link. If packets are from a category that does not require the order of the packets to be maintained, then the selected mapping algorithm can cause packets to be distributed more evenly among the multiple output links. Hashing can be used to distribute in-order packets from the same set to the same output link. Load balancing and round-robin distribution can be used to distribute out-of-order packets more evenly across the output links.
    Type: Grant
    Filed: September 28, 2001
    Date of Patent: March 13, 2007
    Assignee: Lucent Technologies Inc.
    Inventors: Marc Schaub, Balakrishnan Ramakrishnan, Kumar Mehta
  • Patent number: 7031331
    Abstract: Managing packets in a shared memory buffer involves linking buffered packets into a linked list in the order that the packets are written into the shared memory buffer, examining the packets in the order of the linked list to determine which packets are intended for available output links, and then dispatching the oldest packet that is intended for an available output link even if the packet is preceded on the linked list by packets that are older but are intended for unavailable output links. Packets are stored with NEXT pointers that establish the linked list and output link identifiers that identify the intended output links of the packets. The head of the linked list is identified by a linked list HEAD pointer. When a packet is dispatched, the packet is removed from the linked list by adjusting the linked list HEAD pointer or the NEXT pointer of the previous packet.
    Type: Grant
    Filed: August 15, 2001
    Date of Patent: April 18, 2006
    Assignee: Riverstone Networks, Inc.
    Inventor: Marc Schaub
  • Publication number: 20030063611
    Abstract: Distributing packets from an input link to multiple output links involves categorizing each incoming packet, selecting a mapping algorithm based on the packet category, and using the selected mapping algorithm for each packet to determine an output link for the respective packet. If packets are from a category that requires the order of the packets to be maintained, then the selected mapping algorithm causes packets from the same set of packets to be distributed to the same output link. If packets are from a category that does not require the order of the packets to be maintained, then the selected mapping algorithm can cause packets to be distributed more evenly among the multiple output links. Hashing can be used to distribute in-order packets from the same set to the same output link. Load balancing and round-robin distribution can be used to distribute out-of-order packets more evenly across the output links.
    Type: Application
    Filed: September 28, 2001
    Publication date: April 3, 2003
    Inventors: Marc Schaub, Balakrishnan Ramakrishnan, Kumar Mehta
  • Publication number: 20030035372
    Abstract: Managing packets in a shared memory buffer involves linking buffered packets into a linked list in the order that the packets are written into the shared memory buffer, examining the packets in the order of the linked list to determine which packets are intended for available output links, and then dispatching the oldest packet that is intended for an available output link even if the packet is preceded on the linked list by packets that are older but are intended for unavailable output links. Packets are stored with NEXT pointers that establish the linked list and output link identifiers that identify the intended output links of the packets. The head of the linked list is identified by a linked list HEAD pointer. When a packet is dispatched, the packet is removed from the linked list by adjusting the linked list HEAD pointer or the NEXT pointer of the previous packet.
    Type: Application
    Filed: August 15, 2001
    Publication date: February 20, 2003
    Inventor: Marc Schaub