Patents by Inventor Christopher Richardson

Christopher Richardson 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: 7121050
    Abstract: A connecting piece is provided to be fitted where fascia boards are intended to meet, especially at corners of conservatory roofs. The connecting piece has a front face and a rear face, edges of the rear face being shaped to correspond to the outer profile of the fascia boards and means for retaining the connecting piece between adjacent ends of the fascia boards.
    Type: Grant
    Filed: August 4, 2005
    Date of Patent: October 17, 2006
    Assignee: Ultraframe (UK) Limited
    Inventor: Christopher Richardson
  • Publication number: 20060000156
    Abstract: A connecting piece is provided to be fitted where fascia boards are intended to meet, especially at corners of conservatory roofs. The connecting piece has a front face and a rear face, edges of the rear face being shaped to correspond to the outer profile of the fascia boards and means for retaining the connecting piece between adjacent ends of the fascia boards.
    Type: Application
    Filed: August 4, 2005
    Publication date: January 5, 2006
    Inventor: Christopher Richardson
  • Publication number: 20050210454
    Abstract: A method, apparatus, and computer instructions for determining computer flows autonomically using hardware assisted thread stack and cataloged symbolic data. When a new thread is spawned during execution of a computer program, new thread work area is allocated by the operating system in memory for storage of call stack information for the new thread. Hardware registers are set with values corresponding to the new thread work area. Upon context switch, values of the registers are saved in a context save area for future restoration. When call stack data is post-processed, the operating system or a device driver copies call stack data from the thread work areas to a consolidated buffer and each thread is mapped to a process. Symbolic data may be obtained based on the process identifier and address of the method/routine that was called/returned in the thread. Corresponding program flow is determined using retrieved symbolic data and call stack data.
    Type: Application
    Filed: March 18, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050155030
    Abstract: A method, apparatus and computer instructions for hardware assist for autonomically patching code. The present invention provides hardware microcode to a new type of metadata to selectively identify instructions to be patched for specific performance optimization functions. The present invention also provides a new flag in the machine status register (MSR) to enable or disable a performance monitoring application or process to perform code-patching functions. If the code patching function is enabled, the application or process may patch code at run time by associating the metadata with the selected instructions. The metadata includes pointers pointing to the patch code block code. The program code may be patched autonomically without modifying original code.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050154839
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments, the performance indicators may be utilized to obtain information regarding the nature of the cache hits and reloads of cache lines within the instruction or data cache. These embodiments may be used to determine whether processors of a multiprocessor system, such as a symmetric multiprocessor (SMP) system, are truly sharing a cache line or if there is false sharing of a cache line. This determination may then be used as a means for determining how to better store the instructions/data of the cache line to prevent false sharing of the cache line.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050155021
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. Functionality may be provided in the performance monitoring application for initiating the measurement of secondary metrics with regard to identified instructions, data addresses, ranges of identified instructions, or ranges of identified data addresses, based on counter values for primary metrics. Thus, for example, when a primary metric counter, or a combination of primary metric counters, meets or exceeds a predetermined threshold value, an interrupt may be generated. In response to receiving the interrupt, counters associated with the measuring of secondary metrics of a range of instructions/data addresses may be initiated.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050155020
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. The performance indicators and counter values may be used as a mechanism for identifying cache hits and cache misses. Performance counters are incremented each time the instructions of routines of interest are executed and each time the instructions must be reloaded into the cache. From the values of these counters the cache hit-miss ratio may be determined. When the cache hit-miss ratio becomes less than a predetermined threshold, i.e. there is a greater number of cache misses than cache hits, the present invention may determine that a problem condition has occurred and initiate “chase tail” operations for avoiding overwriting of entries in the cache.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050155022
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments of the present invention, the counts associated with the performance indicators may be checked to determine if the counts are above a threshold. If a count is above a threshold, the associated instruction/data address may be identified as a “hot spot” and optimization of the execution of the code may be performed based on the identification of the hot spot.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050155019
    Abstract: A method and apparatus in a data processing system for measuring events associated with the execution of instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments, the performance indicators, counters, thresholds, and other performance monitoring structures may be stored in a page table that is used to translate virtual addresses into physical storage addresses. A standard page table is augmented with additional fields for storing the performance monitoring structures. These structures may be set by the performance monitoring application and may be queried and modified as events occur that require access to physical storage.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Frank Levine, Christopher Richardson, Edward Silha
  • Publication number: 20050154811
    Abstract: A method, apparatus, and computer instructions for qualifying events by types of interrupt when interrupt occurs in the processor of a data processing system. A programmable performance monitoring unit (PMU) is used to program hardware counters that collect events associated with a type of interrupt, including nested interrupts. The performance monitoring unit may also count events that occur while servicing interrupt requests based upon the state of interrupt processing. Events that are known to the performance monitoring unit such as instruction retired, TLB misses, may be counted at the same time using a number of performance monitoring counters in the performance monitoring unit.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmies DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050155025
    Abstract: A method, apparatus, and computer instructions for local program reorganization using branch count per instruction hardware. In a preferred embodiment, a hardware counter is used in the present invention to count the number of times a branch is taken when branch instructions are executed. Branch count statistics generated from the hardware counters are available to a program in order to analyze whether code reorganization is necessary. If reorganization is necessary, the program autonomically reorganizes instructions locally at run time to allow more instructions to be executed prior to taking a branch, so that the number of branches taken is minimized without modifying underlying program code.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050154813
    Abstract: A method, apparatus, and computer instructions for counting interrupts by type. An interrupt count is incremented when a particular type of interrupt occurs. The count may be stored in the IDT or an interrupt count table outside the IDT. The interrupt unit increments the count each time a particular type of interrupt occurs. In the event of a potential count overflow, the mechanism of the present invention provides logic necessary to notify software in order to handle the overflow.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050155026
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments, a compiler may obtain performance profile data, annotated by output obtained from the use of the performance indicators and counters, along with the instructions/data of the computer program and use this information to optimize the manner by which the computer program is executed, instructions/data are stored, and the like. The optimizations may be to optimize the instruction paths, optimize the time spent in initial application load, the manner by which the cache and memory is utilized, and the like.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050154812
    Abstract: A method, apparatus, and computer instructions for providing pre and post handlers to log trace records before entering or after exiting the interrupt handler. A trace record includes a ‘from’ address where the interrupt occurs or where the branch instruction is executed or a ‘to’ address for the branch to case and counts of selected performance monitoring events. A timestamp may be associated with each event. In one embodiment, the pre and post handler is used with trap on branch to log trace records prior to and immediate after taking a branch. In another embodiment, a pre handler is enabled to log trace records that occur prior to executing interrupt service routines. A post handler is enabled to log trace records that occur after the interrupt service routines is executed and prior to returning to normal execution. Resulting low-level performance trace data may be collected by the user at a later time for more structured performance analysis.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050155018
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments of the present invention, arithmetic combinations of counter values generated based on the encountering of performance indicators may be generated and compared to threshold values to determine whether to generate interrupts to the monitoring application. In such embodiments, the microcode of the processor is programmed to check the counter values of counters specified by the monitoring application, combine the counter values in a manner specified by the monitoring application, and then compare the combined value to a threshold value supplied by the performance monitoring application.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050154867
    Abstract: A method, apparatus, and computer instructions for autonomically counting selected branch instructions executed in a processor to improve branch predictions. Counters are provided to count branch instructions that are executed in a processor to collect branch statistics. A set of branch statistics fields is allocated to associate with a branch instruction. When a program is executed, the stored statistics allows the program to look at the branch statistics in the counter to perform branch prediction. Hence, a user may use branch statistics values from the hardware counter to perform analysis on application code.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050154838
    Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments, when it is determined that a cache line is being falsely shared using the performance indicators and counters, an interrupt may be generated and sent to a performance monitoring application. An interrupt handler of the performance monitoring application will recognize this interrupt as indicating false sharing of a cache line. Rather than reloading the cache line in a normal fashion, the data or instructions being accessed may be written to a separate area of cache or memory area dedicated to false cache line sharing data. The code may then be modified by inserting a pointer to this new area of cache or memory.
    Type: Application
    Filed: January 14, 2004
    Publication date: July 14, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050102673
    Abstract: A method and apparatus for providing an autonomic mechanism for tracking thread stacks during a trace of a computer program. The method and apparatus include hardware assistance mechanisms that allow the processor to autonomically maintain a work area for each thread where a call stack is stored. With the apparatus and method, the operating system of the computing device informs the operating system of the size of the data area to allocate to a particular thread work area. In addition, when a trace of a computer program is to be performed, the trace software, via the operating system, informs the processor to begin maintaining the thread call stack information in the thread work area. For each thread in the computer program execution, the processor maintains a work area having a size that is determined based on the size communicated by the operating system. The work area is designated by address and length information stored in control registers of the processor.
    Type: Application
    Filed: November 6, 2003
    Publication date: May 12, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050102493
    Abstract: A method, apparatus, and computer instructions for processing instructions. Responsive to receiving an instruction for execution in an instruction cache in a processor in the data processing system, a determination is made as to whether an indicator is associated with the instruction and whether the instruction is of a certain type within a range of instructions. An interrupt is generated if the indicator is associated with the instruction and the instruction is of the certain type within the range of instructions.
    Type: Application
    Filed: November 6, 2003
    Publication date: May 12, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050086455
    Abstract: A method, apparatus, and computer instructions for processing instructions. In response to receiving an instruction for execution in an instruction cache in a processor in the data processing system, a determination is made as to whether the instruction indicates enabling a mode of operation in which interrupts are to be generated. Responsive to receiving a subsequent instruction after receiving the instruction, a determination is made as to whether the instruction is of a certain type. If the mode of operation in which interrupts are to be enabled and the instruction is of the certain type, an interrupt is generated.
    Type: Application
    Filed: October 16, 2003
    Publication date: April 21, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart