Patents by Inventor Matteo Frigo

Matteo Frigo 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: 20100122034
    Abstract: A tile for use in a tiled storage array provides re-organization of values within the tile array without requiring sophisticated global control. The tiles operate to move a requested value to a front-most storage element of the tile array according to a global systolic clock. The previous occupant of the front-most location is moved or swapped backward according to the systolic clock, and the new occupant is moved forward according to the systolic clock, according to the operation of the tiles, while providing for multiple in-flight access requests within the tile array. The placement heuristic that moves the values is determined according to the position of the tiles within the array and the behavior of the tiles. The movement of the values can be performed via only next-neighbor connections of adjacent tiles within the tile array.
    Type: Application
    Filed: November 13, 2008
    Publication date: May 13, 2010
    Applicant: International Business Machines Corporation
    Inventors: Volker Strumpen, Matteo Frigo
  • Publication number: 20100122057
    Abstract: A tiled storage array provides reduction in access latency for frequently-accessed values by re-organizing to always move a requested value to a front-most storage element of array. The previous occupant of the front-most location is moved backward according to a systolic pulse, and the new occupant is moved forward according to the systolic pulse, preserving the uniqueness of the stored values within the array, and providing for multiple in-flight access requests within the array. The placement heuristic that moves the values according to the systolic pulse can be implemented by control logic within identical tiles, so that the placement heuristic moves the values according to the position of the tiles within the array. The movement of the values can be performed via only next-neighbor connections of adjacent tiles within the array.
    Type: Application
    Filed: November 13, 2008
    Publication date: May 13, 2010
    Applicant: International Business Machines Corporation
    Inventors: Volker Strumpen, Matteo Frigo
  • Publication number: 20100122031
    Abstract: A spiral cache memory provides low access latency for frequently-accessed values by self-organizing to always move a requested value to a front-most storage tile of the spiral. If the spiral cache needs to eject a value to make space for a value moved to the front-most tile, space is made by ejecting a value from the cache to a backing store. A buffer along with flow control logic is used to prevent overflow of writes of ejected values to the generally slow backing store. The tiles in the spiral cache may be single storage locations or be organized as some form of cache memory such as direct-mapped or set-associative caches. Power consumption of the spiral cache can be reduced by dividing the cache into an active and inactive partition, which can be adjusted on a per-tile basis. Tile-generated or global power-down decisions can set the size of the partitions.
    Type: Application
    Filed: November 13, 2008
    Publication date: May 13, 2010
    Applicant: International Business Machines Corporation
    Inventors: Volker Strumpen, Matteo Frigo
  • Publication number: 20100122035
    Abstract: A spiral cache memory provides reduction in access latency for frequently-accessed values by self-organizing to always move a requested value to a front-most central storage element of the spiral. The occupant of the central location is swapped backward, which continues backward through the spiral until an empty location is swapped-to, or the last displaced value is cast out of the last location in the spiral. The elements in the spiral may be cache memories or single elements. The resulting cache memory is self-organizing and for the one-dimensional implementation has a worst-case access time proportional to N, where N is the number of tiles in the spiral. A k-dimensional spiral cache has a worst-case access time proportional to N1/k. Further, a spiral cache system provides a basis for a non-inclusive system of cache memory, which reduces the amount of space and power consumed by a cache memory of a given size.
    Type: Application
    Filed: November 13, 2008
    Publication date: May 13, 2010
    Applicant: International Business Machines Corporation
    Inventors: Volker Strumpen, Matteo Frigo
  • Publication number: 20090183055
    Abstract: In one aspect the invention is a method for sequence estimating. The method includes receiving convolutional codes. The method further includes using a lazy Viterbi decoder to decode the convolutional codes. The convolutional codes may be stream convolutional codes. The convolutional codes may also be block convolutional codes. The lazy Viterbi decoder may be used in a software radio environment.
    Type: Application
    Filed: March 27, 2009
    Publication date: July 16, 2009
    Inventors: Jon Feldman, Matteo Frigo, Ibrahim Abou-Faycal
  • Publication number: 20090125882
    Abstract: In embodiments of the present invention improved capabilities are described for a runtime system for a multiple processing computing system, where multiple processing strands are implemented with hyperobjects. The hyperobject may be a reducer, a splitter, and the like, where the hyperobject may be considered a linguistic object that enables the operation of a plurality of views in the multiple processing environment. The runtime system may implement the hyperobject by managing operations on views, including one or more of creation, accessing, modifying, transferring, forking, combining, and destruction. Access of the views may happen independently from the linguistic control constructs of the code operating on the runtime system and may maintain the identity of the object so that any updating of the object results in updating of a view.
    Type: Application
    Filed: October 8, 2008
    Publication date: May 14, 2009
    Inventors: Matteo Frigo, Charles E. Leiserson, Stephen T. Lewin-Berlin
  • Patent number: 7512869
    Abstract: In one aspect the invention is a method for sequence estimating. The method includes receiving convolutional codes. The method further includes using a lazy Viterbi decoder to decode the convolutional codes. The convolutional codes may be stream convolutional codes. The convolutional codes may also be block convolutional codes. The lazy Viterbi decoder may be used in a software radio environment.
    Type: Grant
    Filed: September 7, 2006
    Date of Patent: March 31, 2009
    Assignee: Vanu, Inc.
    Inventors: Jon Feldman, Matteo Frigo, Ibrahim Abou-Faycal
  • Patent number: 7353170
    Abstract: In one aspect the invention is a method for decoding. The method includes receiving encoded data and decoding the encoded data using a noise-adaptive decoder. The data may include first-order Reed-Mueller (FORM) based codes. The data may be based on Complementary Code Keying. Using a noise-adaptive decoder may include determining values of a hard decision based on a first decoding process and discarding the values of the hard decision if a noise sensitivity parameter is above a threshold value. The method may further include using a second decoder process if the noise sensitivity parameter is above the threshold value.
    Type: Grant
    Filed: August 13, 2003
    Date of Patent: April 1, 2008
    Assignee: Vanu, Inc.
    Inventors: Jon Feldman, Ibrahim Abou-Faycal, Matteo Frigo
  • Publication number: 20070260663
    Abstract: Parallel prefix circuits for computing a cyclic segmented prefix operation with a mesh topology are disclosed. In one embodiment of the present invention, the elements (prefix nodes) of the mesh are arranged in row-major order. Values are accumulated toward the center of the mesh and partial results are propagated outward from the center of the mesh to complete the cyclic segmented prefix operation. This embodiment has been shown to be time-optimal. In another embodiment of the present invention, the prefix nodes are arranged such that the prefix node corresponding to the last element in the array is located at the center of the array. This alternative embodiment is not only time-optimal when accounting for wire-lengths (and therefore propagation delays), but it is also asympotically optimal in terms of minimizing the number of segmented prefix operators.
    Type: Application
    Filed: April 20, 2006
    Publication date: November 8, 2007
    Inventors: Matteo Frigo, Volker Strumpen
  • Publication number: 20070113160
    Abstract: In one aspect the invention is a method for sequence estimating. The method includes receiving convolutional codes. The method further includes using a lazy Viterbi decoder to decode the convolutional codes. The convolutional codes may be stream convolutional codes. The convolutional codes may also be block convolutional codes. The lazy Viterbi decoder may be used in a software radio environment.
    Type: Application
    Filed: September 7, 2006
    Publication date: May 17, 2007
    Applicant: VANU, INC.
    Inventors: Jon Feldman, Matteo Frigo, Ibrahim Abou-Faycal
  • Patent number: 7139967
    Abstract: In one aspect the invention is a method for sequence estimating. The method includes receiving convolutional codes. The method further includes using a lazy Viterbi decoder to decode the convolutional codes. The convolutional codes may be stream convolutional codes. The convolutional codes may also be block convolutional codes. The lazy Viterbi decoder may be used in a software radio environment.
    Type: Grant
    Filed: August 13, 2003
    Date of Patent: November 21, 2006
    Assignee: Vanu, Inc.
    Inventors: Jon Feldman, Matteo Frigo, Ibrahim Abou-Faycal
  • Publication number: 20060230409
    Abstract: A method and processor architecture for achieving a high level of concurrency and latency hiding in an “infinite-thread processor architecture” with a limited number of hardware threads is disclosed. A preferred embodiment defines “fork” and “join” instructions for spawning new threads and having a novel operational semantics. If a hardware thread is available to shepherd a forked thread, the fork and join instructions have thread creation and termination/synchronization semantics, respectively. If no hardware thread is available, however, the fork and join instructions assume subroutine call and return semantics respectively. The link register of the processor is used to determine whether a given join instruction should be treated as a thread synchronization operation or as a return from subroutine operation.
    Type: Application
    Filed: April 7, 2005
    Publication date: October 12, 2006
    Inventors: Matteo Frigo, Ahmed Gheith, Volker Strumpen
  • Publication number: 20060230408
    Abstract: A method and processor architecture for achieving a high level of concurrency and latency hiding in an “infinite-thread processor architecture” with a limited number of hardware threads is disclosed. A preferred embodiment defines “fork” and “join” instructions for spawning new context-switched threads. Context switching is used to hide the latency of both memory-access operations (i.e., loads and stores) and arithmetic/logical operations. When an operation executing in a thread incurs a latency having the potential to delay the instruction pipeline, the latency is hidden by performing a context switch to a different thread. When the result of the operation becomes available, a context switch back to that thread is performed to allow the thread to continue.
    Type: Application
    Filed: April 7, 2005
    Publication date: October 12, 2006
    Inventors: Matteo Frigo, Ahmed Gheith, Volker Strumpen
  • Publication number: 20040153957
    Abstract: In one aspect the invention is a method for sequence estimating. The method includes receiving convolutional codes. The method further includes using a lazy Viterbi decoder to decode the convolutional codes. The convolutional codes may be stream convolutional codes. The convolutional codes may also be block convolutional codes. The lazy Viterbi decoder may be used in a software radio environment.
    Type: Application
    Filed: August 13, 2003
    Publication date: August 5, 2004
    Inventors: Jon Feldman, Matteo Frigo, Ibrahim Abou-Faycal
  • Publication number: 20040136452
    Abstract: In one aspect the invention is a method for decoding. The method includes receiving encoded data and decoding the encoded data using a noise-adaptive decoder. The data may include first-order Reed-Mueller (FORM) based codes. The data may be based on Complementary Code Keying. Using a noise-adaptive decoder may include determining values of a hard decision based on a first decoding process and discarding the values of the hard decision if a noise sensitivity parameter is above a threshold value. The method may further include using a second decoder process if the noise sensitivity parameter is above the threshold value.
    Type: Application
    Filed: August 13, 2003
    Publication date: July 15, 2004
    Inventors: Jon Feldman, Ibrahim Abou-Faycal, Matteo Frigo