US2008098207A1PendingUtilityA1

Analyzing diagnostic data generated by multiple threads within an instruction stream

Assignee: REID ALASTAIR DAVIDPriority: Oct 24, 2006Filed: Sep 11, 2007Published: Apr 24, 2008
Est. expiryOct 24, 2026(~0.3 yrs left)· nominal 20-yr term from priority
G06F 11/3466G06F 11/36G06F 11/22G06F 11/28G06F 11/3636G06F 11/362
49
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A diagnostic method for outputting diagnostic data relating to processing of instruction streams stemming from a computer program, at least some of said instructions streams comprising multiple threads is disclosed. The method comprises the steps of: (i) receiving diagnostic data; (ii) reordering said received diagnostic data in dependence upon reordering data, said reordering data comprising data relating to said computer program; and (iii) outputting said reordered diagnostic data. In general, the instructions streams are processed by a plurality of processing units arranged to process at least some of said instructions in parallel, said diagnostic data being received from said plurality of processing units.

Claims

exact text as granted — not AI-modified
1 . A diagnostic method for outputting diagnostic data relating to processing of instruction streams stemming from a computer program, at least some of said instructions streams comprising multiple threads, said method comprising the steps of:
 (i) receiving diagnostic data;   (ii) reordering at least one received diagnostic data item from said received diagnostic data with respect to at least one other received diagnostic data item in dependence upon reordering data, said reordering data comprising data relating to said computer program; and   (iii) outputting said reordered diagnostic data.   
     
     
         2 . A diagnostic method according to  claim 1 , said diagnostic method comprising a further step:
 (iia) removing at least one received diagnostic data item from said received diagnostic data in dependence upon said reordering data.   
     
     
         3 . A diagnostic method according to  claim 1 , said diagnostic method comprising a further step:
 (iib) merging at least one received diagnostic data item from said received diagnostic data with at least one other received diagnostic data item in dependence upon said reordering data.   
     
     
         4 . A diagnostic method according to  claim 1 , wherein said instructions streams are processed by a plurality of processing units arranged to process at least some of said instructions in parallel, said diagnostic data being received from said plurality of processing units. 
     
     
         5 . A diagnostic method according to  claim 1 , wherein said reordering data further comprises at least one of generic data relating to how computer programs are transformed prior to being executed and rules regarding processing of said instructions stemming from a hardware arrangement of said processing units. 
     
     
         6 . A diagnostic method according to  claim 1 , wherein said reordering data further comprises additional instruction processing dependency data output from a compiler compiling said program. 
     
     
         7 . A diagnostic method according to  claim 1 , wherein said reordering step (ii) comprises identifying a thread within said instruction stream that an item of said received diagnostic data is produced by and grouping diagnostic data produced by a same thread together in execution order. 
     
     
         8 . A diagnostic method according to  claim 7 , wherein said instructions streams are processed by a plurality of processing units arranged to process at least some of said instructions in parallel, said diagnostic data being received from said plurality of processing units and wherein said thread migrates between said processing units. 
     
     
         9 . A diagnostic method according to  claim 8 , wherein at least one of said processing units is programmable using a sequence of instructions from an instruction set. 
     
     
         10 . A diagnostic method according to  claim 8 , wherein at least two of said processing units are responsive to different instruction sets. 
     
     
         11 . A diagnostic method according to  claim 1 , wherein said reordering step (ii) comprises identifying diagnostic data generated in response to at least one object being processed by multiple threads and grouping diagnostic data relating to a same object together. 
     
     
         12 . A diagnostic method according to any one of  claim 1 , wherein said reordering step (ii) comprises reordering said received diagnostic data such that diagnostic data produced by execution of each instruction is arranged in program order. 
     
     
         13 . A diagnostic method according to  claim 1 , wherein said instruction streams are processed by a plurality of processing units arranged to process at least some of said instructions in parallel and said processing of said instruction streams by said plurality of processing units involves interleaving of at least some of said instructions such that said received diagnostic data stream relates to at least some interleaved instructions and said reordering step (ii) comprises determining allowed reordering operations from said reordering data and performing at least one of said allowed reordering operations in order to produce a diagnostic data stream in which at least some interleaving of instructions due to parallel processing has been removed. 
     
     
         14 . A diagnostic method according to  claim 1 , wherein said instruction streams are processed by a plurality of processing units arranged to process at least some of said instructions in parallel and said step of receiving diagnostic data comprises receiving a plurality of streams of diagnostic data from each of said plurality of processing units. 
     
     
         15 . A diagnostic method according to  claim 1 , wherein said diagnostic data comprises trace data. 
     
     
         16 . A diagnostic method according to  claim 15 , wherein said diagnostic data comprises specific trace data relating to a synchronisation event and emitted in response to said synchronisation event. 
     
     
         17 . A diagnostic method according to  claim 16 , wherein said synchronisation event comprises specific trace data relating to the initiation or completion of a task on a processing element. 
     
     
         18 . A diagnostic method according to  claim 16 , wherein said synchronisation event comprises specific trace data relating to the migration of a task between processing elements. 
     
     
         19 . A diagnostic method according to  claim 16 , wherein said synchronisation event comprises at least one of: a processing unit processing one of said streams of instructions switching processing between threads and communication between at least two of said threads. 
     
     
         20 . A computer program product which is operable when run on a data processor to, control the data processor to perform the steps of the method according to  claim 1 . 
     
     
         21 . A diagnostic apparatus for outputting diagnostic data relating to processing of instruction streams stemming from a computer program, at least some of said instructions streams comprising multiple threads, said diagnostic apparatus comprising:
 a data input for receiving diagnostic data from said plurality of processing units;   reordering logic adapted to reorder said received diagnostic data in dependence upon reordering data, said reordering data comprising data relating to said computer program; and   a data output for outputting said reordered diagnostic data.   
     
     
         22 . A diagnostic apparatus according to  claim 21 , said reordering logic being further operable to remove at least one received diagnostic data item from said received diagnostic data in dependence upon said reordering data, and to merge at least one received diagnostic data item from said received diagnostic data with at least one other received diagnostic data item in dependence upon said reordering data. 
     
     
         23 . A diagnostic apparatus according to  claim 21 , wherein said instructions streams are processed by a plurality of processing units arranged to process at least some of said instructions in parallel. 
     
     
         24 . A diagnostic apparatus according to  claim 21 , said diagnostic apparatus comprising a plurality of data inputs for receiving a plurality of streams of diagnostic data from each of said plurality of processing units. 
     
     
         25 . A diagnostic apparatus according to  claim 21 , wherein said diagnostic data comprises trace data and said data output is trace data reordered to more closely follow an ordering of said computer program. 
     
     
         26 . A method of compiling a computer program to be processed by a plurality of processing units arranged to process at least some of said instructions in parallel, comprising:
 generating a plurality of program fragments to be executed by said plurality of processors from source code of said computer program;   generating additional information indicative of semantically permissible reorderings of threads of execution derived from said source code;   outputting said program fragments and said generated information.   
     
     
         27 . A method according to  claim 26 , wherein said additional information comprises dependency information indicating conditions where it is allowable to reorder diagnostic data generated by execution of said instructions, said additional information being output separately to said decoded streams of instructions. 
     
     
         28 . A computer program product which is operable when run on a data processor to control the data processor to perform the steps of the method according to  claim 26 . 
     
     
         29 . A compiler for compiling a computer program to be processed by a plurality of processing units arranged to process at least some of said instructions in parallel, said compiler comprising:
 a program fragment generator for generating a plurality of program fragments to be executed by said plurality of processors from source code of said computer program;   an additional information generator for generating additional information indicative of semantically permissible reorderings of threads of execution derived from said source code; and   an output for outputting said decoded streams of instructions and said generated information.

Join the waitlist — get patent alerts

Track US2008098207A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.