Patents by Inventor David James Williamson

David James Williamson 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).

  • Patent number: 8386754
    Abstract: An out-of-order renaming processor is provided with a register file within which aliasing between registers of different sizes may occur. In this way a program instruction having a source register of a double precision size may alias with two single precision registers being used as destinations of one or more preceding program instructions. In order to track this data dependency the double precision register may be remapped into a micro-operation specifying two single precision registers as its source register. In this way, scheduling circuitry may use its existing hazard detection and management mechanisms to handle potential data hazards and dependencies. Not all program instructions having such data hazards between registers of different sizes are handled by this source register remapping. For these other program instructions a slower mechanism for dealing with the data dependency hazard is provided.
    Type: Grant
    Filed: June 24, 2009
    Date of Patent: February 26, 2013
    Assignee: ARM Limited
    Inventors: Conrado Blasco Allue, David James Williamson, James Nolan Hardage, Glen Andrew Harris, Robert Gregory McDonald
  • Patent number: 8255629
    Abstract: A storage apparatus receives a first and second access requests for accessing items in a same clock cycle. The apparatus includes two stores, each storing a subset of the plurality of items, the first access request being routed to a first store and the second access request to a second store; miss detecting circuitry for detecting a miss in the accessed store; item retrieving circuitry for retrieving an item whose access generated a miss from a further store; updating circuitry for selecting an item to overwrite in one of the two stores, the updating circuitry being responsive to the miss detecting circuitry detecting the miss in an access to the first or second store and to at least one further condition to update both of the two stores with the item retrieved from the further store by overwriting the selected items.
    Type: Grant
    Filed: June 22, 2009
    Date of Patent: August 28, 2012
    Assignee: ARM Limited
    Inventors: Paul Gilbert Meyer, David James Williamson, Simon John Craske
  • Patent number: 8234489
    Abstract: A processor is disclosed having a plurality of general purpose registers for storing data for processing by the processor; a set of system configuration registers for storing data indicative of a current configuration of the processor; the system configuration registers being located together in a register file; and at least some of the set of system configuration registers having a shadow register for storing a duplicate value remote from the register file, the shadow register being located close to a component that the shadow register stores a configuration value for.
    Type: Grant
    Filed: July 15, 2009
    Date of Patent: July 31, 2012
    Assignee: ARM Limited
    Inventors: David James Williamson, James Nolan Hardage
  • Publication number: 20120124346
    Abstract: A processor 2 includes instruction decoding circuitry 8 and processing circuitry 16, 18, 20, 22, 24. The instruction decoding circuitry decodes at least one conditional program instruction in accordance with a conditional prediction as one of, in accordance with the condition prediction being a condition pass, one or more micro-operation instructions that control the processing circuitry to perform the processing action together with a condition resolution micro-operation instruction, or in accordance with the condition prediction being a condition fail, at least a condition resolution micro-operation instruction. Condition resolution circuitry 24 responds to the condition resolution micro-operation instruction to determine if the condition prediction is incorrect.
    Type: Application
    Filed: November 15, 2010
    Publication date: May 17, 2012
    Applicant: ARM LIMITED
    Inventors: James Nolan Hardage, Conrado Blasco Allue, Glen Andrew Harris, David James Williamson
  • Patent number: 8051275
    Abstract: A processor 2 includes an execution cluster 10 having multiple execution units 14, 16, 18, 20. The execution units 14, 16, 18, 20 share result buses 22, 24. Issue circuitry 12 within the execution cluster 10 determines future availability of a result bus 22, 24 for an instruction to be issued (or recently issued) using a known cycle count for that instruction. The availability is tracked for each result bus using a mask register 32 storing a mask value within which each bit position indicates the availability or non-availability of that result bus at a particular processing cycle in the future. The mask value is left shifted each processing cycle.
    Type: Grant
    Filed: June 1, 2009
    Date of Patent: November 1, 2011
    Assignee: ARM Limited
    Inventors: David James Williamson, Conrado Blasco Allué
  • Publication number: 20110016338
    Abstract: A processor is disclosed having a plurality of general purpose registers for storing data for processing by the processor; a set of system configuration registers for storing data indicative of a current configuration of the processor; the system configuration registers being located together in a register file; and at least some of the set of system configuration registers having a shadow register for storing a duplicate value remote from the register file, the shadow register being located close to a component that the shadow register stores a configuration value for.
    Type: Application
    Filed: July 15, 2009
    Publication date: January 20, 2011
    Inventors: David James Williamson, James Nolan Hardage
  • Publication number: 20100332805
    Abstract: An out-of-order renaming processor is provided with a register file within which aliasing between registers of different sizes may occur. In this way a program instruction having a source register of a double precision size may alias with two single precision registers being used as destinations of one or more preceding program instructions. In order to track this data dependency the double precision register may be remapped into a micro-operation specifying two single precision registers as its source register. In this way, scheduling circuitry may use its existing hazard detection and management mechanisms to handle potential data hazards and dependencies. Not all program instructions having such data hazards between registers of different sizes are handled by this source register remapping. For these other program instructions a slower mechanism for dealing with the data dependency hazard is provided.
    Type: Application
    Filed: June 24, 2009
    Publication date: December 30, 2010
    Applicant: ARM Limited
    Inventors: Conrado Blasco Allue, David James Williamson, James Nolan Hardage, Glen Andrew Harris, Robert Gregory McDonald
  • Publication number: 20100325358
    Abstract: A storage apparatus and method for storing a plurality of items is disclosed. The storage apparatus is configured to receive a first access request and a second access request for accessing respective items in a same clock cycle.
    Type: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Applicant: ARM Limited
    Inventors: Paul Gilbert Meyer, David James Williamson, Simon John Craske
  • Publication number: 20100306505
    Abstract: A processor 2 includes an execution cluster 10 having multiple execution units 14, 16, 18, 20. The execution units 14, 16, 18, 20 share result buses 22, 24. Issue circuitry 12 within the execution cluster 10 determines future availability of a result bus 22, 24 for an instruction to be issued (or recently issued) using a known cycle count for that instruction. The availability is tracked for each result bus using a mask register 32 storing a mask value within which each bit position indicates the availability or non-availability of that result bus at a particular processing cycle in the future. The mask value is left shifted each processing cycle.
    Type: Application
    Filed: June 1, 2009
    Publication date: December 2, 2010
    Inventors: David James Williamson, Conrado Blasco Allue
  • Patent number: 7774582
    Abstract: A data processing system including multiple execution pipelines each having multiple execution stages E1, E2, E3 may have instructions issued together in parallel despite a data dependency therebetween if it is detected that the result operand value for the older instruction will be generated in an execution stage prior to an execution stage which requires that result operand value as an input operand value to the younger instruction and accordingly cross-forwarding of the operand value is possible between the execution pipelines to resolve the data dependency.
    Type: Grant
    Filed: May 26, 2005
    Date of Patent: August 10, 2010
    Assignee: ARM Limited
    Inventors: David James Williamson, Glen Andrew Harris, Stephen John Hill
  • Patent number: 7725695
    Abstract: A processor incorporates a branch prediction mechanism which acts to predict branch outcomes for predicted type branch instructions. The processor also supports non-predicted type branch instructions which are ignored by the branch prediction mechanism and are not subject to prediction. The impact of mispredictions degrading overall performance of the prediction mechanism is reduced by employing non-prediction type branch program instructions to represent/control branch operations when it is known that misprediction is likely for those branch operations.
    Type: Grant
    Filed: May 31, 2005
    Date of Patent: May 25, 2010
    Assignee: ARM Limited
    Inventors: David James Williamson, Andrew James Booker, David John Butcher
  • Patent number: 7496899
    Abstract: Techniques for preventing the loss of trace information being transmitted via trace infrastructure are disclosed. A data processing apparatus for processing instructions is provided.
    Type: Grant
    Filed: August 17, 2005
    Date of Patent: February 24, 2009
    Assignee: ARM Limited
    Inventors: Stephen John Hill, Glen Andrew Harris, David James Williamson
  • Patent number: 7437544
    Abstract: A data processing apparatus and method are provided for executing a sequence of instructions including at least one multiple iteration instruction. The data processing apparatus comprises an instruction store for storing the sequence of instructions, and a processing unit for executing the sequence of instructions, the processing unit comprising at least a first processing path and a second processing path to enable at least two instructions of the sequence to be executed in parallel. When executing instructions in parallel, the first processing path executes an instruction which is earlier in the sequence than the instruction executing in the second processing path. The processing unit is operable when executing a multiple iteration instruction to allow a first iteration of the multiple iteration instruction to be executed in either the first processing path or the second processing path, but to cause all remaining iterations of the multiple iteration instruction to be executed in the first processing path.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: October 14, 2008
    Assignee: ARM Limited
    Inventors: Ann Sekli Chin, David James Williamson
  • Patent number: 7389459
    Abstract: A data processing apparatus is provided having a plurality of functional units. At least one of the functional units is operable to perform data processing operations and at least a subset of the plurality of functional units have at least one of a respective co-processor register for storing configuration data and a respective debug register for storing debug data. A debug controller outputs debug data and co-ordinates debug operations. A configuration ring-bus provides a ring path for communication of configuration instructions between a first ring sequence of the plurality of functional units and a debug ring-bus provides a ring path for communication of the debug data between a second ring sequence of the plurality of functional units. Separate provision of the debug ring-bus and the configuration ring-bus provides independent access to the co-processor register and to the debug register.
    Type: Grant
    Filed: March 22, 2005
    Date of Patent: June 17, 2008
    Assignee: ARM Limited
    Inventors: Conrado Blasco Allue, Stephen John Hill, David James Williamson
  • Patent number: 7343481
    Abstract: A data processing system incorporates an instruction prefetch unit 8 including a static branch predictor 12. A static branch prediction cache 30, 32, 34 is provided for storing a most recently encountered static branch prediction such that a subsequent request to fetch the already encountered branch instruction can be identified before the opcode for that branch instruction is returned. The cached static branch prediction can thus redirect the prefetching to the branch target address sooner than the static predictor 12.
    Type: Grant
    Filed: March 19, 2003
    Date of Patent: March 11, 2008
    Assignee: ARM Limited
    Inventor: David James Williamson
  • Patent number: 7093236
    Abstract: An integrated circuit is provided with a tracing mechanism that is responsive to data access misses to insert a data place holder within a stream of trace data. When the missed data is later returned, this is inserted into the stream of traced data as a later data value. Analysis of the stream trace data may subsequently correlate between instructions that gave rise to data misses and the late data that was subsequently returned.
    Type: Grant
    Filed: February 1, 2001
    Date of Patent: August 15, 2006
    Assignee: ARM Limited
    Inventors: Andrew Brookfield Swaine, David James Williamson, Paul Robert Gotch
  • Patent number: 7080289
    Abstract: A microprocessor integrated circuit 104 is provided with a trace controller 120 that is responsive to trace initiating conditions to trigger commencement of tracing operation and generation of a trace data stream. In the case of a multi-word data transfer instruction LSM, the trace controller 120 is able to trigger tracing partway through that instruction such that a subset of the transfer specified by that instruction are included within the trace data stream. All transfers subsequent to the triggering transfer may be traced with those transfers subsequent to the triggering transfer being marked with place holder codes rather than more informative full trace data for the triggering transfer.
    Type: Grant
    Filed: October 10, 2001
    Date of Patent: July 18, 2006
    Assignee: ARM Limited
    Inventors: Andrew Brookfield Swaine, David James Williamson
  • Patent number: 7020768
    Abstract: The present invention provides an apparatus and method for facilitating debugging of sequences of processing instructions. The apparatus comprises a processing circuit for executing processing instructions, the processing circuit having multiple states of operation, with each state of operation being assigned a context identifier to identify the state of operation. Further, logic is provided for facilitating debugging of sequences of processing instructions executed by the processing circuit. The logic comprises control logic, responsive to control parameters, to perform predetermined actions to facilitate debugging, and triggering logic for generating the control parameters dependent on data received from the processing circuit indicative of the processing being performed by the processing circuit.
    Type: Grant
    Filed: February 26, 2001
    Date of Patent: March 28, 2006
    Assignee: ARM Limited
    Inventors: Andrew Brookfield Swaine, Conrado Blasco Allué, Ian Victor Devereux, David James Williamson, Anthony Neil Berent
  • Publication number: 20040225866
    Abstract: A data processing system incorporates an instruction prefetch unit 8 including a static branch predictor 12. A static branch prediction cache 30, 32, 34 is provided for storing a most recently encountered static branch prediction such that a subsequent request to fetch the already encountered branch instruction can be identified before the opcode before that branch instruction is returned. The cached static branch prediction can thus redirect the prefetching to the branch target address sooner than the static predictor 12.
    Type: Application
    Filed: May 6, 2003
    Publication date: November 11, 2004
    Inventor: David James Williamson
  • Publication number: 20040186984
    Abstract: A data processing system incorporates an instruction prefetch unit 8 including a static branch predictor 12. A static branch prediction cache 30, 32, 34 is provided for storing a most recently encountered static branch prediction such that a subsequent request to fetch the already encountered branch instruction can be identified before the opcode before that branch instruction is returned. The cached static branch prediction can thus redirect the prefetching to the branch target address sooner than the static predictor 12.
    Type: Application
    Filed: March 19, 2003
    Publication date: September 23, 2004
    Applicant: ARM LIMITED
    Inventor: David James Williamson