Patents by Inventor Michael Caulfield

Michael Caulfield 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: 20170147346
    Abstract: An apparatus and method are provided for managing a branch information storage. The apparatus has a processor to process instructions, comprising fetch circuitry to fetch instructions from a plurality of threads for processing by the processor. The branch information storage has a plurality of entries, each entry storing a virtual address identifier for a branch instruction, branch information about the branch instruction, and thread identifier information indicating which of the plurality of threads that entry is valid for. The fetch circuitry is arranged to access the branch information storage using a virtual address of an instruction to be fetched for one of the plurality of threads, in order to determine whether a hit condition exists, and in that event to obtain the branch information stored in the entry that gave rise to the hit condition.
    Type: Application
    Filed: November 20, 2015
    Publication date: May 25, 2017
    Inventors: Alexander Alfred HORNUNG, Ian Michael CAULFIELD
  • Publication number: 20170139708
    Abstract: Data processing circuitry comprises instruction queue circuitry to maintain one or more instruction queues to store fetched instructions; instruction decode circuitry to decode instructions dispatched from the one or more instruction queues, the instruction decode circuitry being configured to allocate one or more processor resources of a set of processor resources to a decoded instruction for use in execution of that decoded instruction; detection circuitry to detect, for an instruction to be dispatched from a given instruction queue, a prediction indicating whether sufficient processor resources are predicted to be available for allocation to that instruction by the instruction decode circuitry; and dispatch circuitry to dispatch an instruction from the given instruction queue to the instruction decode circuitry, the dispatch circuitry being responsive to the detection circuitry to allow deletion of the dispatched instruction from that instruction queue when the prediction indicates that sufficient processo
    Type: Application
    Filed: November 16, 2015
    Publication date: May 18, 2017
    Inventors: Andrew James Antony LEES, Ian Michael CAULFIELD, Peter Richard GREENHALGH
  • Publication number: 20170139716
    Abstract: A processing pipeline for processing instructions with instructions from multiple threads in flight concurrently may have control circuitry to detect a stalling event associated with a given thread. In response, at least one instruction of the given thread may be flushed from the pipeline, and the control circuitry may trigger fetch circuitry to reduce a fraction of the fetched instructions which are fetched from the given thread. A mechanism is also described to determine when to trigger a predetermined action when a delay in accessing information becomes greater than a delay threshold, and to update the delay threshold based on a difference between a return delay when the information is returned from the storage circuitry and the delay threshold.
    Type: Application
    Filed: November 18, 2015
    Publication date: May 18, 2017
    Inventors: Ian Michael CAULFIELD, Max John BATLEY, Chiloda Ashan Senarath PATHIRANE
  • Publication number: 20170132010
    Abstract: An apparatus for data processing and a method of data processing are provided. Data processing operations are performed in response to instructions which reference architectural registers using physical registers to store data values when performing the data processing operations. Mappings between the architectural registers and the physical registers are stored, and when a data hazard condition is identified with respect to out-of-order program execution of an instruction, an architectural register specified in the instruction is remapped to an available physical register. A reorder buffer stores an entry for each destination architectural register specified by the instruction, entries being stored in program order, and an entry specifies a destination architectural register and an original physical register to which the destination architectural register was mapped before the architectural register remapped to an available physical register.
    Type: Application
    Filed: November 11, 2015
    Publication date: May 11, 2017
    Inventors: Vladimir VASEKIN, Ian Michael CAULFIELD, Chiloda Ashan Senarath PATHIRANE
  • Publication number: 20170132011
    Abstract: An apparatus and method are provided for processing instructions from a plurality of threads. The apparatus comprises a processing pipeline to process instructions, including fetch circuitry to fetch instructions from a plurality of threads for processing by the processing pipeline, and execution circuitry to execute the fetched instructions. Execution hint instruction handling circuitry is then responsive to the fetch circuitry fetching an execution hint instruction for a first thread, to treat the execution hint instruction, at least in a presence of a suspension condition, as a predicted branch instruction with a predicted behaviour, and to cause the fetch circuitry to suspend fetching of instructions for the first thread. The execution circuitry is then arranged to execute the predicted branch instruction with a behaviour different to the predicted behaviour, in order to trigger a misprediction condition.
    Type: Application
    Filed: November 9, 2015
    Publication date: May 11, 2017
    Inventors: Ian Michael CAULFIELD, Antony John PENTON, Robert Gwilym DIMOND
  • Publication number: 20170123808
    Abstract: An apparatus includes a processing pipeline comprising a plurality of stages, the plurality of stages including at least one instruction fusing stage to detect whether a block of instructions to be processed comprises a fusible group of instructions, and to generate a fused instruction to be processed by a subsequent stage of the processing pipeline when said block of instructions comprises said fusible group. However, when said block of instructions comprises a partial subset of said fusible group of instructions, the instruction fusing stage is configured to delay handling of said partial subset of said fusible group of instructions until the instruction fusing stage has determined whether at least one subsequent block of instructions to be processed comprises a remaining subset of instructions of said fusible group.
    Type: Application
    Filed: November 2, 2015
    Publication date: May 4, 2017
    Inventors: Ian Michael CAULFIELD, Chiloda Ashan Senerath PATHIRANE
  • Publication number: 20170017490
    Abstract: Processing circuitry includes execute circuitry for executing micro-operations in response to instructions fetched from a data store. Control circuitry is provided to determine, based on availability of at least one processing resource, how many micro-operations are to be executed by the execute circuitry in response to a given set of one or more instructions fetched from the data store.
    Type: Application
    Filed: May 12, 2016
    Publication date: January 19, 2017
    Inventor: Ian Michael CAULFIELD
  • Publication number: 20160357561
    Abstract: A processing pipeline may have first and second execution circuits having different performance or energy consumption characteristics. Instruction supply circuitry may support different instruction supply schemes with different energy consumption or performance characteristics. This can allow a further trade-off between performance and energy efficiency. Architectural state storage can be shared between the execute units to reduce the overhead of switching between the units. In a parallel execution mode, groups of instructions can be executed on both execute units in parallel.
    Type: Application
    Filed: April 13, 2016
    Publication date: December 8, 2016
    Inventors: Peter Richard GREENHALGH, Simon John CRASKE, Ian Michael CAULFIELD, Max John BATLEY, Allan John SKILLMAN, Antony John PENTON
  • Publication number: 20160357565
    Abstract: Apparatus for processing data 2 is provided with fetch circuitry 16 for fetching program instructions for execution from one or more active threads of instructions having respective program counter values. Pipeline circuitry 22, 24 has a first operating mode and a second operating mode. Mode switching circuitry 30 switches the pipeline circuitry 22, 24, between the first operating mode and the second operating mode in dependence upon a number of active threads of program instructions having program instructions available to be executed. The first operating mode has a lower average energy consumption per instruction executed than the second operating mode and the second operating mode has a higher average rate of instruction execution for a single thread than the first operating mode. The first operating mode may utilise a barrel processing pipeline 22 to perform interleaved multiple thread processing.
    Type: Application
    Filed: April 20, 2016
    Publication date: December 8, 2016
    Inventors: Peter Richard GREENHALGH, Simon John CRASKE, Ian Michael CAULFIELD, Max John BATLEY, Allan John SKILLMAN, Antony John PENTON
  • Publication number: 20160357554
    Abstract: An apparatus comprises a processing pipeline comprising out-of-order execution circuitry and second execution circuitry. Control circuitry monitors at least one reordering metric indicative of an extent to which instructions are executed out of order by the out-of-order execution circuitry, and controls whether instructions are executed using the out-of-order execution circuitry or the second execution circuitry based on the reordering metric. A speculation metric indicative of a fraction of executed instructions that are flushed due to a mis-speculation can also be used to determine whether to execute instructions on first or second execution circuitry having different performance or energy consumption characteristics.
    Type: Application
    Filed: June 5, 2015
    Publication date: December 8, 2016
    Inventors: Ian Michael CAULFIELD, Peter Richard GREENHALGH, Simon John CRASKE, Max John BATLEY, Allan John SKILLMAN, Antony John PENTON
  • Publication number: 20160160863
    Abstract: Plated polymeric gas turbine engine parts and methods for fabricating lightweight plated polymeric gas turbine engine parts are disclosed. The parts include a polymeric substrate plated with one or more metal layers. The polymeric material of the polymeric substrate may be structurally reinforced with materials that may include carbon, metal, or glass. The polymeric substrate may also include a plurality of layers to form a composite layup structure.
    Type: Application
    Filed: July 9, 2014
    Publication date: June 9, 2016
    Inventors: James T. Roach, Barry Barnett, Grant O. Cook, Charles R. Watson, Shari L. Bugaj, Glenn LeVasseur, Wendell V. Twelves, Christopher J. Hertel, Colin J. Kling, Matthew A. Turner, JinQuan Xu, Steven Clarkson, Michael Caulfield
  • Patent number: 9330035
    Abstract: A data processing device comprises a plurality of system registers and a set of interrupt handling registers for controlling handling of an incoming interrupt. The device also includes processing circuitry configured to execute software of the plurality of execution levels, and interrupt controller circuitry configured to route said incoming interrupts to interrupt handling software that is configured to run at one of said plurality of execution levels, and register access control circuitry configured to dynamically control access to at least some of said interrupt handling registers in dependence upon one of said plurality of execution levels that said incoming interrupt is routed to. The interrupt handling software configured to run at a particular execution level does not have access to interrupt handling registers for handling a different incoming interrupt that is routed to interrupt handling software that is configured to run at a more privileged execution level.
    Type: Grant
    Filed: May 23, 2013
    Date of Patent: May 3, 2016
    Assignee: ARM Limited
    Inventors: Anthony Jebson, Richard Roy Grisenthwaite, Michael Alexander Kennedy, Ian Michael Caulfield
  • Patent number: 9213547
    Abstract: A processor has a processing pipeline with first, second and third stages. An instruction at the first stage takes fewer cycles to reach the second stage then the third stage. The second and third stages each have a duplicated processing resource. For a pending instruction which requires the duplicated resource and can be processed using the duplicated resource at either of the second and third stages, the first stage determines whether a required operand would be available when the pending instruction would reach the second stage. If the operand would be available, then the pending instruction is processed using the duplicated resource at the second stage, while if the operand would not be available in time then the instruction is processed using the duplicated resource in the third pipeline stage. This technique helps to reduce delays caused by data dependency hazards.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: December 15, 2015
    Assignee: ARM Limited
    Inventors: Ian Michael Caulfield, Peter Richard Greenhalgh, Max John Batley
  • Publication number: 20150261542
    Abstract: A data processing apparatus has a pipeline for performing a processing operation involving a conditional step which is required only if at least one input operand satisfies a predetermined condition. Control circuitry detects whether the condition is satisfied. If not, then the pipeline is controlled to perform the operation bypassing the conditional step to generate the output operand a first number of cycles later than a start cycle in which the operation starts, and the output operand is forwarded over a forwarding path. If the condition is satisfied, then the pipeline performs the operation including the conditional step to generate the output operand a second number of cycles later than the start cycle, where the second number is greater than the first number. The output operand is written to a destination register the same number of cycles later than the start cycle regardless of whether the condition is satisfied.
    Type: Application
    Filed: March 14, 2014
    Publication date: September 17, 2015
    Applicant: ARM LIMITED
    Inventor: Ian Michael CAULFIELD
  • Patent number: 8919257
    Abstract: A round for simulating an 155 mm Excalibur ammunition for testing purposes. The round can effectively simulate the flight patterns of a real Excalibur round for testing purposes though made of far less expensive reusable parts. The round is generally fired into a water trough in a long soft catch recovery device so the tested round can later be studied, or generally fired ballistically, to test obturator devices.
    Type: Grant
    Filed: February 21, 2013
    Date of Patent: December 30, 2014
    Assignee: The United States of America as Represented by the Secretary of the Army
    Inventors: Ryan Hooke, Tyler Myers, Christopher Stout, Michael Caulfield, Alan Totten
  • Publication number: 20140365751
    Abstract: A data processing apparatus has at least one processing pipeline having first, second and third pipeline stages. The first pipeline stage detects whether a stream of instructions to be processed includes a predetermined instruction sequence comprising first and second instructions for performing first and second operand generation operations, where the second operand generation operation is dependent on an outcome of the first. In response to detecting this instruction sequence, the first pipeline stage generates a modified stream of instructions in which at least the second instruction is replaced with a third instruction for performing a combined operand generation operation having the same effect as the first and second operand generation operations. As the third instruction can be scheduled independently of the first instruction, processing performance of the pipeline can be improved.
    Type: Application
    Filed: May 9, 2014
    Publication date: December 11, 2014
    Applicant: ARM LIMITED
    Inventors: Ian Michael CAULFIELD, Max BATLEY, Peter Richard GREENHALGH
  • Publication number: 20140351472
    Abstract: A data processing device comprises a plurality of system registers and a set of interrupt handling registers for controlling handling of an incoming interrupt. The device also includes processing circuitry configured to execute software of the plurality of execution levels, and interrupt controller circuitry configured to route said incoming interrupts to interrupt handling software that is configured to run at one of said plurality of execution levels, and register access control circuitry configured to dynamically control access to at least some of said interrupt handling registers in dependence upon one of said plurality of execution levels that said incoming interrupt is routed to. The interrupt handling software configured to run at a particular execution level does not have access to interrupt handling registers for handling a different incoming interrupt that is routed to interrupt handling software that is configured to run at a more privileged execution level.
    Type: Application
    Filed: May 23, 2013
    Publication date: November 27, 2014
    Applicant: ARM LIMITED
    Inventors: Anthony JEBSON, Richard Roy GRISENTHWAITE, Michael Alexander KENNEDY, Ian Michael CAULFIELD
  • Publication number: 20140281423
    Abstract: A processor has a processing pipeline with first, second and third stages. An instruction at the first stage takes fewer cycles to reach the second stage then the third stage. The second and third stages each have a duplicated processing resource. For a pending instruction which requires the duplicated resource and can be processed using the duplicated resource at either of the second and third stages, the first stage determines whether a required operand would be available when the pending instruction would reach the second stage. If the operand would be available, then the pending instruction is processed using the duplicated resource at the second stage, while if the operand would not be available in time then the instruction is processed using the duplicated resource in the third pipeline stage. This technique helps to reduce delays caused by data dependency hazards.
    Type: Application
    Filed: March 14, 2013
    Publication date: September 18, 2014
    Inventors: Ian Michael CAULFIELD, Peter Richard GREENHALGH, Max John BATLEY
  • Publication number: 20140212458
    Abstract: The present application relates to novel HIV-1 envelope glycoproteins, which may be utilized as HIV-1 vaccine immunogens, and antigens for crystallization, electron micrsocopy and other biophysical, biochemical and immunological studies for the identification of broad neutralizing antibodies. The present invention encompasses the preparation and purification of immunogenic compositions, which are formulated into the vaccines of the present invention.
    Type: Application
    Filed: November 5, 2013
    Publication date: July 31, 2014
    Applicants: INTERNATIONAL AIDS VACCINE INITIATIVE, THE SCRIPPS RESEARCH INSTITUTE, CORNELL CENTER FOR TECHNOLOGY ENTERPRISE AND COMMERCIALIZATION
    Inventors: Michael Caulfield, Albert Cupo, Hansi Dean, Simon Hoffenberg, C. Richter King, P. J. Klasse, Andre Marozsan, John P. Moore, Rogier W. Sanders, Andrew Ward, Ian Wilson, Jean-Philippe Julien
  • Patent number: 8499017
    Abstract: A data processing apparatus is arranged to perform a fused multiply add operation. The apparatus 100 has multiplying circuitry 110 configured to multiply operands B and C to generate a product B*C having a high order portion 160 and a low order portion 170. The apparatus has adding circuitry 130 configured to: (i) add an operand A to one of the high order portion 160 and the low order portion 170 to generate an intermediate sum value; and (ii) add the intermediate sum value to a remaining one of the high order portion 160 and the low order portion 170 to generate a result A+B*C.
    Type: Grant
    Filed: August 12, 2009
    Date of Patent: July 30, 2013
    Assignee: ARM Limited
    Inventors: Antony John Penton, Simon John Craske, Ian Michael Caulfield