Patents by Inventor Josep M. Codina

Josep M. Codina 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: 20130268735
    Abstract: Techniques are described for providing an enhanced cache coherency protocol for a multi-core processor that includes a Speculative Request For Ownership Without Data (SRFOWD) for a portion of cache memory. With a SRFOWD, only an acknowledgement message may be provided as an answer to a requesting core. The contents of the affected cache line are not required to be a part of the answer. The enhanced cache coherency protocol may assure that a valid copy of the current cache line exists in case of misspeculation by the requesting core. Thus, an owner of the current copy of the cache line may maintain a copy of the old contents of the cache line. The old contents of the cache line may be discarded if speculation by the requesting core turns out to be correct. Otherwise, in case of misspeculation by the requesting core, the old contents of the cache line may be set back to a valid state.
    Type: Application
    Filed: December 29, 2011
    Publication date: October 10, 2013
    Inventors: Enric Gibert Codina, Fernando Latorre, Josep M. Codina, Crispin Gomez Requena, Antonio Gonzalez, Meyrem Hyuseinova, Christos E. Kotselidis, Pedro Lopez, Marc Lupon, Carlos Madriles, Grigorios Magklis, Pedro Marcuello, Alejandro Martinez Vicente, Raul Martinez, Daniel Ortega, Demos Pavlou, Kyriakos A. Stavrou, Georgios Tournavitis, Polychronis Xekalakis
  • Patent number: 8261046
    Abstract: In one embodiment, the present invention includes a method for accessing registers associated with a first thread while executing a second thread. In one such embodiment a method may include preventing an instruction of a first thread that is to access a source operand from a register file of a second thread from executing if a synchronization indicator associated with the source operand indicates incompletion of a producer operation of the second thread, and executing the instruction if the synchronization indicator indicates completion of the producer operation of the second thread. Other embodiments are described and claimed.
    Type: Grant
    Filed: October 27, 2006
    Date of Patent: September 4, 2012
    Assignee: Intel Corporation
    Inventors: Enric Gibert, Josep M. Codina, Fernando Latorre, José Alejandro Piñeiro, Pedro López, Antonio González
  • Publication number: 20120167058
    Abstract: An apparatus and method for profiling program code. In particular, an apparatus according to one embodiment comprises a filtering component identifying a first set of instructions for which profiling is desired wherein, in response to detecting that an instruction has been retired, the filtering component determines whether the instruction is within the first set of instructions for which profiling is desired; an event selection component detecting an event in response to the instruction retiring, the event selection component generating event signals in response to a designated event; and a profiling component recording the occurrence or not occurrence of the event within a first storage device responsive to signals from the filtering component and/or the event selection component.
    Type: Application
    Filed: December 22, 2010
    Publication date: June 28, 2012
    Inventors: Enric Gibert Codina, Josep M. Codina, Carlos Madriles, Raul Martinez
  • Patent number: 8190652
    Abstract: Techniques for achieving coherence between dynamically optimized code and original code are disclosed. In an embodiment, a search is performed for a first entry for a first page containing a first code region in a first data structure. The first code is used to determine whether a first indicator in the first entry is set to a first value. The first entry is added to the first data structure, in response to failing to find the first entry in the first data structure. A second search may be performed for a second entry for the first code region in a second data structure, in response to determining that the first indicator is set to the first value. Other embodiments are also disclosed and claimed.
    Type: Grant
    Filed: December 6, 2007
    Date of Patent: May 29, 2012
    Assignee: Intel Corporation
    Inventors: Fernando Latorre, Grigorios Magklis, Enric Gibert, Josep M. Codina, Antonio González
  • Patent number: 7895415
    Abstract: Apparatus and computing systems associated with cache sharing based thread control are described. One embodiment includes a memory to store a thread control instruction and a processor to execute the thread control instruction. The processor is coupled to the memory. The processor includes a first unit to dynamically determine a cache sharing behavior between threads in a multi-threaded computing system and a second unit to dynamically control the composition of a set of threads in the multi-threaded computing system. The composition of the set of threads is based, at least in part, on thread affinity as exhibited by cache-sharing behavior. The thread control instruction controls the operation of the first unit and the second unit.
    Type: Grant
    Filed: February 14, 2007
    Date of Patent: February 22, 2011
    Assignee: Intel Corporation
    Inventors: Antonio Gonzalez, Josep M. Codina, Pedro Lopez, Fernando Latorre, Jose-Alejandro Pineiro, Enric Gibert, Jaume Abella, Jaideep Moses, Donald Newell, Ravishankar Iyer, Ramesh G. Illikkal, Srihari Makineni
  • Publication number: 20100269102
    Abstract: Systems, methods, and apparatuses for decomposing a sequential program into multiple threads, executing these threads, and reconstructing the sequential execution of the threads are described. A plurality of data cache units (DCUs) store locally retired instructions of speculatively executed threads. A merging level cache (MLC) merges data from the lines of the DCUs. An inter-core memory coherency module (ICMC) globally retire instructions of the speculatively executed threads in the MLC.
    Type: Application
    Filed: November 24, 2009
    Publication date: October 21, 2010
    Inventors: Fernando Latorre, Josep M. Codina, Enric Gibert Codina, Pedro Lopez, Carlos Madriles, Alejandro Martinez Vincente, Raul Martinez, Antonio Gonzalez
  • Publication number: 20100262812
    Abstract: Methods and apparatus are disclosed for using a register checkpointing mechanism to resolve multithreading mis-speculations. Valid architectural state is recovered and execution is rolled back. Some embodiments include memory to store checkpoint data. Multiple thread units concurrently execute threads. They execute a checkpoint mask instruction to initialize memory to store active checkpoint data including register contents and a checkpoint mask indicating the validity of stored register contents. As register contents change, threads execute checkpoint write instructions to store register contents and update the checkpoint mask. Threads also execute a recovery function instruction to store a pointer to a checkpoint recovery function, and in response to mis-speculation among the threads, branch to the checkpoint recovery function.
    Type: Application
    Filed: April 8, 2009
    Publication date: October 14, 2010
    Inventors: Pedro Lopez, Carlos Madriles, Alejandro Martinez, Raul Martinez, Josep M. Codina, Enric Gibert Codina, Fernando Latorre, Antonio Gonzalez
  • Publication number: 20100115247
    Abstract: Methods and apparatus relating to a replacement policy for hot code detection are described. In some embodiments, it may be determined which entry amongst a plurality of entries stored in storage unit is to be replaced next. The entries may correspond to hot code and may store age and execution frequency information corresponding to the hot code. Other embodiments are also described and claimed.
    Type: Application
    Filed: October 31, 2008
    Publication date: May 6, 2010
    Inventors: Pedro Lopez, F. Jesus Sanchez, Josep M. Codina, Enric Gibert, Fernando Latorre, Grigorios Magklis, Pedro Marcuello, Antonio Gonzalez
  • Publication number: 20100005277
    Abstract: In one embodiment, the present invention includes a method for accessing registers associated with a first thread while executing a second thread. In one such embodiment a method may include preventing an instruction of a first thread that is to access a source operand from a register file of a second thread from executing if a synchronization indicator associated with the source operand indicates incompletion of a producer operation of the second thread, and executing the instruction if the synchronization indicator indicates completion of the producer operation of the second thread. Other embodiments are described and claimed.
    Type: Application
    Filed: October 27, 2006
    Publication date: January 7, 2010
    Inventors: Enric Gibert, Josep M. Codina, Fernando Latorre, José Alejandro Pineiro, Pedro López, Antonio González
  • Publication number: 20090150335
    Abstract: An apparatus comprising a first search logic to search for a first entry for a first page containing a first code region in a first data structure to determine whether a first indicator in the first entry is set to a first value; an adder logic to add the first entry to the first data structure, in response to failing to find the first entry in the first data structure; a second search logic to search for a second entry for the first code region in a second data structure, in response to determining that the first indicator is set to the first value, wherein one or more optimized code regions corresponding to the first page from a code cache are to be removed in response to determining that the first page may have been modified, and wherein the first indicator is to be set to a second value.
    Type: Application
    Filed: December 6, 2007
    Publication date: June 11, 2009
    Inventors: Fernando Latorre, Grigorios Magklis, Enric Gibert, Josep M. Codina, Antonio Gonzalez
  • Publication number: 20080195849
    Abstract: Apparatus and computing systems associated with cache sharing based thread control are described. One embodiment includes a memory to store a thread control instruction and a processor to execute the thread control instruction. The processor is coupled to the memory. The processor includes a first unit to dynamically determine a cache sharing behavior between threads in a multi-threaded computing system and a second unit to dynamically control the composition of a set of threads in the multi-threaded computing system. The composition of the set of threads is based, at least in part, on thread affinity as exhibited by cache-sharing behavior. The thread control instruction controls the operation of the first unit and the second unit.
    Type: Application
    Filed: February 14, 2007
    Publication date: August 14, 2008
    Inventors: Antonio Gonzalez, Josep M. Codina, Pedro Lopez, Fernando Latorre, Jose-Alejandro Pineiro, Enric Gibert, Jaume Abella, Jaideep Moses, Donald Newell, Ravishankar Iyer, Ramesh G. Illikkal, Srihari Makineni