Patents by Inventor Shay Koren

Shay Koren 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: 20230259584
    Abstract: Disclosed embodiments include a computational memory system. The computational memory system includes at least one computational memory chip including one or more processor subunits and one or more memory banks formed on a common substrate. The at least one computational memory chip is configured to store one or more portions of an embedding table in the one or more memory banks, the embedding table including one or more feature vectors. The one or more processor subunits are configured to receive a sparse vector indicator from a host external to the at least one computational memory chip and, based on the received sparse vector indicator and the one or more portions of the embedding table, generate one or more vector sums.
    Type: Application
    Filed: April 7, 2023
    Publication date: August 17, 2023
    Applicant: NEUROBLADE LTD.
    Inventors: Eliad HILLEL, Shai BETITO, Shany BRAUDO, Gal DAYAN, Shay KOREN
  • Patent number: 10700718
    Abstract: An oscillator calibration circuit is provided. The oscillator calibration circuit includes a signal frequency detector for producing a reference signal from a received over-the-air signal detecting a frequency of the over-the-air signal; and a first frequency locking circuit (FLC) coupled to the signal frequency detector and to a first oscillator, wherein the first FLC calibrates the frequency of the first oscillator using the reference signal to a radio frequency (RF) carrier frequency, wherein the reference signal is utilized for calibrating the first oscillator based on the frequency of the detected over-the-air signal.
    Type: Grant
    Filed: July 18, 2019
    Date of Patent: June 30, 2020
    Assignee: WILIOT, LTD.
    Inventors: Nir Shapira, Shay Koren
  • Publication number: 20200028530
    Abstract: An oscillator calibration circuit is provided. The oscillator calibration circuit includes a signal frequency detector for producing a reference signal from a received over-the-air signal detecting a frequency of the over-the-air signal; and a first frequency locking circuit (FLC) coupled to the signal frequency detector and to a first oscillator, wherein the first FLC calibrates the frequency of the first oscillator using the reference signal to a radio frequency (RF) carrier frequency, wherein the reference signal is utilized for calibrating the first oscillator based on the frequency of the detected over-the-air signal.
    Type: Application
    Filed: July 18, 2019
    Publication date: January 23, 2020
    Applicant: Wiliot, Ltd.
    Inventors: Nir SHAPIRA, Shay KOREN
  • Patent number: 10296346
    Abstract: A method which 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: Grant
    Filed: March 31, 2015
    Date of Patent: May 21, 2019
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 10296350
    Abstract: A method which 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: Grant
    Filed: March 31, 2015
    Date of Patent: May 21, 2019
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 10180841
    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: Grant
    Filed: January 27, 2016
    Date of Patent: January 15, 2019
    Assignee: Centipede Semi Ltd.
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 10013255
    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: Grant
    Filed: March 23, 2016
    Date of Patent: July 3, 2018
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Jonathan Friedmann, Ido Goren, Shay Koren, Noam Mizrahi, Alberto Mandler
  • Publication number: 20180129505
    Abstract: A method includes, in a processor (20) 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: February 4, 2016
    Publication date: May 10, 2018
    Inventors: Noam MIZRAHI, Alberto MANDLER, Shay KOREN, Jonathan FRIEDMANN
  • Publication number: 20180129500
    Abstract: A method includes retrieving to a pipeline of a processor first instructions of program code from a first region in the program code. Before fully determining a flow-control path, which is to be traversed within the first region until exit from the first region, a beginning of a second region in the code that is to be processed following the first region is predicted, and second instructions begin to be retrieved to the pipeline from the second region. The retrieved first instructions and second instructions are processed by the pipeline.
    Type: Application
    Filed: June 8, 2017
    Publication date: May 10, 2018
    Inventors: Shay Koren, Noam Mizrahi, Jonathan Friedmann
  • Publication number: 20180004627
    Abstract: A processor includes an instruction pipeline and control circuitry. The instruction pipeline is configured to process instructions of program code. The control circuitry is configured to monitor the processed instructions at run-time, to construct an invocation data structure comprising multiple entries, wherein each entry (i) specifies an initial instruction that is a target of a branch instruction, (ii) specifies a portion of the program code that follows one or more possible flow-control traces beginning from the initial instruction, and (iii) specifies, for each possible flow-control trace specified in the entry, a next entry that is to be processed following processing of that possible flow-control trace, and to configure the instruction pipeline to process segments of the program code, by continually traversing the entries of the invocation data structure.
    Type: Application
    Filed: June 29, 2016
    Publication date: January 4, 2018
    Inventors: Shay Koren, Arie Hacohen Ben Porat, Ido Goren, Noam Mizrahi, Jonathan Friedmann
  • Publication number: 20170344374
    Abstract: A method includes, in a pipeline of a processor, writing instructions of a single software thread that are pending for execution into a reorder buffer (ROB) in accordance with a single write position, and incrementing the single write position to point to a location in the ROB for a next instruction to be written. The instructions, which were written in accordance with the single write position, are removed from first and second different locations in the ROB, and the first and second locations are incremented.
    Type: Application
    Filed: May 24, 2017
    Publication date: November 30, 2017
    Inventors: Jonathan Friedmann, Shay Koren
  • Publication number: 20170337062
    Abstract: A processor includes a pipeline and control circuitry. The pipeline is configured to process instructions of program code and includes one or more fetch units. The control circuitry is configured to predict at run-time one or more future flow-control traces to be traversed in the program code, to define, based on the predicted flow-control traces, two or more regions of the program code from which instructions are to be fetched, wherein the number of regions is greater than the number of fetch units, and to instruct the pipeline to fetch instructions alternately from the two or more regions of the program code using the one or more fetch units, and to process the fetched instructions.
    Type: Application
    Filed: December 29, 2016
    Publication date: November 23, 2017
    Inventors: Jonathan Friedmann, Shay Koren, Noam Mizrahi, Alberto Mandler
  • Publication number: 20170277538
    Abstract: A method for trace prediction includes using trace prediction to predict a trace specifying branch decisions. When a branch misprediction is detected, trace prediction is terminated and prediction is continued using branch prediction.
    Type: Application
    Filed: March 24, 2016
    Publication date: September 28, 2017
    Inventors: Jonathan FRIEDMANN, Noam MIZRAHI, Arie Hacohen BEN-PORAT, Ido GOREN, Alberto MANDLER, Shay KOREN
  • Publication number: 20170277544
    Abstract: A processor includes an execution pipeline and monitoring circuity. The execution pipeline is configured to execute instructions of program code. The monitoring circuity is configured to monitor 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, to parallelize execution of the repetitive sequence based on the corrected specification, and to terminate monitoring of the instructions and discard the specification in response to detecting a branch mis-prediction in the monitored instructions.
    Type: Application
    Filed: June 13, 2017
    Publication date: September 28, 2017
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • Patent number: 9715390
    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: Grant
    Filed: April 19, 2015
    Date of Patent: July 25, 2017
    Assignee: CENTIPEDE SEMI LTD.
    Inventors: Noam Mizrahi, Alberto Mandler, Shay Koren, Jonathan Friedmann
  • 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
  • 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