Patents by Inventor Noam Mizrahi

Noam Mizrahi 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: 20170123797
    Abstract: A method includes, in a processor, processing a sequence of pre-compiled instructions by an instruction pipeline of the processor. A first block of instructions is identified in the instructions flowing via the pipeline. The first block includes a conditional branch instruction that conditionally diverges execution of the instructions into at least first and second flow-control traces that differ from one another in multiple instructions and converge at a given instruction that is again common to the first and second flow-control traces. A second block of instructions, which is logically equivalent to the first block but replaces the first and second flow-control traces by a single flow-control trace, is created by the processor at runtime. The pipeline is caused to execute the second block instead of the first block.
    Type: Application
    Filed: March 23, 2016
    Publication date: May 4, 2017
    Inventors: Jonathan Friedmann, Ido Goren, Shay Koren, Noam Mizrahi, Alberto Mandler
  • Publication number: 20170123798
    Abstract: A method includes, in a processor, processing a sequence of pre-compiled instructions by an instruction pipeline of the processor. A first block of instructions is identified in the instructions flowing via the pipeline. The first block includes at least first and second conditional branch instructions that conditionally diverge execution of the instructions into a plurality of flow-control traces that differ from one another in multiple instructions and converge at a given instruction. A second block of instructions, which is logically equivalent to the first block but replaces the plurality of flow-control traces by a reduced set of one or more flow-control traces, having fewer flow-control traces than the first block, is created by the processor at runtime. The pipeline is caused to execute the second block instead of the first block.
    Type: Application
    Filed: March 23, 2016
    Publication date: May 4, 2017
    Inventors: Jonathan Friedmann, Ido Goren, Shay Koren, Noam Mizrahi, Alberto Mandler
  • Patent number: 9575897
    Abstract: A method includes, in a processor, processing program code that includes memory-access instructions, wherein at least some of the memory-access instructions include symbolic expressions that specify memory addresses in an external memory in terms of one or more register names. Based on respective formats of the memory addresses specified in the symbolic expressions, a sequence of load instructions that access a predictable pattern of memory addresses in the external memory is identified. At least one cache line that includes a plurality of data values is retrieved from the external memory. Based on the predictable pattern, two or more of the data values that are requested by respective load instructions in the sequence are saved from the cache line to the internal memory. The saved data values are assigned to be served from the internal memory to one or more instructions that depend on the respective load instructions.
    Type: Grant
    Filed: July 9, 2015
    Date of Patent: February 21, 2017
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Noam Mizrahi, Jonathan Friedmann
  • Publication number: 20170010973
    Abstract: A method includes, in a processor, processing program code that includes memory-access instructions, wherein at least some of the memory-access instructions include symbolic expressions that specify memory addresses in an external memory in terms of one or more register names. At least a store instruction and a subsequent load instruction that access the same memory address in the external memory are identified, based on respective formats of the memory addresses specified in the symbolic expressions. An outcome of at least one of the memory-access instructions is assigned to be served to one or more instructions that depend on the load instruction, from an internal memory in the processor.
    Type: Application
    Filed: July 9, 2015
    Publication date: January 12, 2017
    Inventors: Noam Mizrahi, Jonathan Friedmann
  • Publication number: 20170010972
    Abstract: A method includes, in a processor, processing program code that includes memory-access instructions, wherein at least some of the memory-access instructions include symbolic expressions that specify memory addresses in an external memory in terms of one or more register names. At least first and second load instructions that access a same memory address in the external memory are identified in the program code, based on respective formats of the memory addresses specified in the symbolic expressions of the load instructions. An outcome of at least one of the load instructions is assigned to be served from an internal memory in the processor.
    Type: Application
    Filed: July 9, 2015
    Publication date: January 12, 2017
    Inventors: Noam Mizrahi, Jonathan Friedmann
  • Publication number: 20170010892
    Abstract: A method includes, in a processor, processing program code that includes memory-access instructions, wherein at least some of the memory-access instructions include symbolic expressions that specify memory addresses in an external memory in terms of one or more register names. A relationship between the memory addresses accessed by two or more of the memory-access instructions is identified, based on respective formats of the memory addresses specified in the symbolic expressions. An outcome of at least one of the memory-access instructions is assigned to be served from an internal memory in the processor, based on the identified relationship.
    Type: Application
    Filed: July 9, 2015
    Publication date: January 12, 2017
    Inventors: Noam Mizrahi, Jonathan Friedmann
  • Publication number: 20170010971
    Abstract: A method includes, in a processor, processing program code that includes memory-access instructions, wherein at least some of the memory-access instructions include symbolic expressions that specify memory addresses in an external memory in terms of one or more register names. Based on respective formats of the memory addresses specified in the symbolic expressions, a sequence of load instructions that access a predictable pattern of memory addresses in the external memory is identified. At least one cache line that includes a plurality of data values is retrieved from the external memory. Based on the predictable pattern, two or more of the data values that are requested by respective load instructions in the sequence are saved from the cache line to the internal memory. The saved data values are assigned to be served from the internal memory to one or more instructions that depend on the respective load instructions.
    Type: Application
    Filed: July 9, 2015
    Publication date: January 12, 2017
    Inventors: Noam Mizrahi, Jonathan Friedmann
  • Publication number: 20160306633
    Abstract: A method includes, in a processor that processes instructions of program code, processing a first segment of the instructions. One or more destination registers are identified in the first segment using an approximate specification of register access by the instructions. Respective values of the destination registers are made available to a second segment of the instructions only upon verifying that the values are valid for readout by the second segment in accordance with the approximate specification. The second segment is processed at least partially in parallel with processing of the first segment, using the values made available from the first segment.
    Type: Application
    Filed: April 19, 2015
    Publication date: October 20, 2016
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Publication number: 20160291979
    Abstract: A method includes, in a processor that processes instructions of program code, processing one or more of the instructions by a first hardware thread. Upon detecting that an instruction defined as a parallelization point has been fetched for the first thread, a second hardware thread is invoked to process at least one of the instructions at least partially in parallel with processing of the instructions by the first hardware thread.
    Type: Application
    Filed: March 31, 2015
    Publication date: October 6, 2016
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Publication number: 20160291982
    Abstract: A method includes, in a processor that processes instructions of program code, processing one or more of the instructions in a first segment of the instructions by a first hardware thread. Upon detecting that an instruction defined as a parallelization point has been fetched for the first thread, a second hardware thread is invoked to process at least one of the instructions in a second segment of the instructions, at least partially in parallel with processing of the instructions of the first segment by the first hardware thread, in accordance with a specification of register access that is indicative of data dependencies between the first and second segments.
    Type: Application
    Filed: March 31, 2015
    Publication date: October 6, 2016
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 9430244
    Abstract: A method includes processing a sequence of instructions of program code that are specified using one or more architectural registers, by a hardware-implemented pipeline that renames the architectural registers in the instructions so as to produce operations specified using one or more physical registers. At least first and second segments of the sequence of instructions are selected, wherein the second segment occurs later in the sequence than the first segment. One or more of the architectural registers in the instructions of the second segment are renamed, before completing renaming the architectural registers in the instructions of the first segment, by pre-allocating one or more of the physical registers to one or more of the architectural registers.
    Type: Grant
    Filed: October 28, 2015
    Date of Patent: August 30, 2016
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Omri Tennenhaus, Alberto Mandler, Noam Mizrahi
  • Patent number: 9380645
    Abstract: An advanced split ODU architecture is provided. The advanced architecture includes an indoor communication unit including a digital modem assembly configured to modulate and demodulate digital data, and also includes a digital interface module configured to transmit and/or receive the digital data, over a digital communication pathway, between the indoor communication unit and an external outdoor communication unit. The advanced architecture further includes an outdoor communication unit having a digital interface module configured to transmit and/or receive the digital data, over the digital communication pathway, between the outdoor communication unit and an external indoor communication unit, and also includes a digital to analog converter configured to convert the digital data to analog data and an analog to digital converter configured to convert the analog data to the digital data, and further includes an RF module configured to convert the analog data between a baseband and a radio frequency.
    Type: Grant
    Filed: June 27, 2012
    Date of Patent: June 28, 2016
    Assignee: Broadcom Corporation
    Inventors: Jonathan Friedmann, Igal Kushnir, Alon Shavit, Noam Mizrahi
  • Publication number: 20160179536
    Abstract: A processor includes a processing pipeline including multiple hardware threads and configured to execute software code instructions that are stored in a memory, along with multiple registers, configured to be read and written to by the processing pipeline during execution of the instructions. A monitoring unit monitors the instructions in the processing pipeline and records respective monitoring tables indicating the registers accessed in processing the instructions in different sequences of the instructions, and parallelizes among the hardware threads of the processor, using the respective monitoring tables, execution of repetitions of at least first sequences of the instructions.
    Type: Application
    Filed: January 27, 2016
    Publication date: June 23, 2016
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 9348595
    Abstract: A method includes, in a processor that executes instructions of program code, monitoring instructions of a repetitive sequence of the instructions that traverses a flow-control trace so as to construct a specification of register access by the monitored instructions. Based on the specification, multiple hardware threads are invoked to execute respective segments of the repetitive instruction sequence at least partially in parallel. Monitoring of the instructions continues in at least one of the segments during execution.
    Type: Grant
    Filed: December 22, 2014
    Date of Patent: May 24, 2016
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 9298627
    Abstract: Embodiments include multi-processor systems, including multi-core processor systems, as well as methods for operating the same, in which at least one processor or processor core is configured to receive an instruction directing the at least one processor core to read a value associated with a memory address. In response to receiving the instruction and before execution of the instruction, the at least one processor or processor core causes ones of the plurality of mutually communicatively inter-coupled processor cores to provide a plurality of locally stored values that are stored individually in the respective processor cores and that are associated with the memory address.
    Type: Grant
    Filed: January 13, 2014
    Date of Patent: March 29, 2016
    Assignee: Marvell World Trade Ltd.
    Inventors: Eitan Joshua, Noam Mizrahi
  • Patent number: 9298628
    Abstract: Embodiments include multi-processor systems, including multi-core processor systems, as well as methods for operating the same, in which at least one processor or processor core is configured to receive an instruction directing the at least one processor core to read a value associated with a memory address. In response to receiving the instruction and before execution of the instruction, the at least one processor or processor core causes ones of the plurality of mutually communicatively inter-coupled processor cores to provide a plurality of locally stored values that are stored individually in the respective processor cores and that are associated with the memory address.
    Type: Grant
    Filed: January 14, 2014
    Date of Patent: March 29, 2016
    Assignee: Marvell World Trade Ltd.
    Inventors: Eitan Joshua, Noam Mizrahi
  • Patent number: 9208066
    Abstract: A method includes, in a processor that executes instructions of program code, identifying a region of the code containing one or more segments of the instructions that are at least partially repetitive. The instructions in the region are monitored, and an approximate specification of register access by the monitored instructions is constructed for the region. Execution of the segments in the region is parallelized using the specification.
    Type: Grant
    Filed: March 4, 2015
    Date of Patent: December 8, 2015
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 9135015
    Abstract: A method includes, in a processor that executes instructions of program code, monitoring the instructions in a segment of a repetitive sequence of the instructions so as to construct a specification of register access by the monitored instructions. In response to detecting a branch mis-prediction in the monitored instructions, the specification is corrected so as to compensate for the branch mis-prediction. Execution of the repetitive sequence is parallelized based on the corrected specification.
    Type: Grant
    Filed: December 25, 2014
    Date of Patent: September 15, 2015
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 9069489
    Abstract: Some of the embodiments of the present disclosure provide a method comprising receiving a first set of memory access commands; modifying the first set of memory access commands to generate a second set of memory access commands; and in response to said generation of the second set of memory access commands, issuing the second set of memory access commands to a memory. Other embodiments are also described and claimed.
    Type: Grant
    Filed: March 24, 2011
    Date of Patent: June 30, 2015
    Assignee: Marvell Israel (M.I.S.L) Ltd.
    Inventor: Noam Mizrahi
  • Patent number: 8898540
    Abstract: Some of the embodiments of the present disclosure provide a system-on-chip (SOC) that includes a plurality of processing cores; and a counter update module configured to atomically update a counter that is stored in a storage location, based on a counter update command received from a processing core of the plurality of processing cores; generate an ECC for the updated value of the counter; and write the updated value of the counter and the ECC to the storage location. Other embodiments are also described and claimed.
    Type: Grant
    Filed: March 29, 2011
    Date of Patent: November 25, 2014
    Assignee: Marvell Israel (M.I.S.L) Ltd.
    Inventors: Dan Ilan, Adi Habusha, Noam Mizrahi