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: 12203765Abstract: 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: GrantFiled: November 7, 2023Date of Patent: January 21, 2025Assignee: Google LLCInventors: Steve Chien, Mark Yinan Li, Marc Schaub, Benjamin Anderson, James Aspinall, Zhou Bailiang, Ruwen Hess
-
Publication number: 20240077324Abstract: 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: ApplicationFiled: November 7, 2023Publication date: March 7, 2024Inventors: Steve Chien, Mark Yinan Li, Marc Schaub, Benjamin Anderson, James Aspinall, Zhou Bailiang, Ruwen Hess
-
Patent number: 10415987Abstract: 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: GrantFiled: June 24, 2016Date of Patent: September 17, 2019Assignee: Google LLCInventors: Steve Chien, Mark Yinan Li, Marc Schaub, Benjamin Anderson, James Aspinall, Zhou Bailiang, Ruwen Hess
-
Publication number: 20190101402Abstract: 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: ApplicationFiled: June 24, 2016Publication date: April 4, 2019Applicant: Google Inc.Inventors: Steve Chien, Mark Yinan Li, Marc Schaub, Benjamin Anderson, James Aspinall, Zhou Bailiang, Ruwen Hess
-
Patent number: 9003165Abstract: 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: GrantFiled: December 9, 2008Date of Patent: April 7, 2015Inventors: Shlomo Selim Rakib, Marc Schaub
-
Patent number: 8713285Abstract: 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: GrantFiled: December 9, 2008Date of Patent: April 29, 2014Inventors: Shlomo Selim Rakib, Marc Schaub
-
Patent number: 8359455Abstract: 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: GrantFiled: December 9, 2008Date of Patent: January 22, 2013Inventors: Shlomo Selim Rakib, Marc Schaub
-
Publication number: 20100281236Abstract: 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: ApplicationFiled: April 30, 2009Publication date: November 4, 2010Applicant: Novafora, Inc.Inventors: Shlomo Selim Rakib, Muhammad Ahmed, Marc Schaub
-
Publication number: 20100281192Abstract: 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: ApplicationFiled: April 30, 2009Publication date: November 4, 2010Applicant: Novafora, Inc.Inventors: Shlomo Selim Rakib, Marc Schaub
-
Publication number: 20100281234Abstract: 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: ApplicationFiled: April 30, 2009Publication date: November 4, 2010Applicant: Novafora, Inc.Inventors: MUHAMMAD AHMED, Marc Schaub, Shlomo Selim Rakib
-
Publication number: 20100145992Abstract: 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: ApplicationFiled: December 9, 2008Publication date: June 10, 2010Applicant: Novafora, Inc.Inventors: Shlomo Selim Rakib, Marc Schaub
-
Publication number: 20100145993Abstract: 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: ApplicationFiled: December 9, 2008Publication date: June 10, 2010Applicant: Novafora, Inc.Inventors: Shlomo Selim Rakib, Marc Schaub
-
Publication number: 20100146238Abstract: 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: ApplicationFiled: December 9, 2008Publication date: June 10, 2010Applicant: Novafora, Inc.Inventors: Shlomo Selim Rakib, Marc Schaub
-
Patent number: 7190695Abstract: 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: GrantFiled: September 28, 2001Date of Patent: March 13, 2007Assignee: Lucent Technologies Inc.Inventors: Marc Schaub, Balakrishnan Ramakrishnan, Kumar Mehta
-
Patent number: 7031331Abstract: 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: GrantFiled: August 15, 2001Date of Patent: April 18, 2006Assignee: Riverstone Networks, Inc.Inventor: Marc Schaub
-
Publication number: 20030063611Abstract: 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: ApplicationFiled: September 28, 2001Publication date: April 3, 2003Inventors: Marc Schaub, Balakrishnan Ramakrishnan, Kumar Mehta
-
Publication number: 20030035372Abstract: 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: ApplicationFiled: August 15, 2001Publication date: February 20, 2003Inventor: Marc Schaub