Claims Analysis
Total Claims: 57
Claim 1
Independent Claim
42 words
A method for profiling frequencies of accesses made to a virtual memory by a program thread, comprising the steps of: running the program thread; and generating a profile that indicates the frequencies at which virtual memory addresses are accessed by the thread.
Claim 2
Independent Claim
42 words
A method for profiling frequencies of accesses made to a virtual memory by a program thread, comprising the steps of: running the program thread; and generating a profile that indicates the frequencies at which virtual memory addresses are accessed by the thread.
Claim 3
Dependent Claim
43 words
The method of claim 1, further comprising the step of generating placement data that identifies at least one virtual address region for the program thread, said at least one virtual address region representing virtual memory addresses accessed relatively frequently by the program thread.
Claim 4
Dependent Claim
77 words
The method of claim 1, wherein said profile generating step comprises the steps of: interrupting the thread; returning a program counter; using said returned program counter to determine a valid load or store instruction for the thread in assembly code; reading a virtual memory address corresponding to said valid load or store instruction; and incrementing said profile based on said virtual memory address to track the frequencies at which virtual memory addresses are accessed by the thread.
Claim 5
Dependent Claim
76 words
The method of claim 3, wherein said using step comprises the steps of: walking forward through said assembly code identified by said returned program counter until a valid load or store instruction is reached; tracking registers which get written; and aborting said walking when at least one of the following two conditions occurs: a branch is reached, or a load or store instruction is reached whose address is based on a register that has been modified.
Claim 6
Dependent Claim
81 words
The method of claim 3, wherein said using step comprises the steps of: walking backward through said assembly code identified by said returned program counter until a valid load or store instruction is reached; tracking registers which get written; and aborting said walking when at least one of the following three conditions occurs: a branch is reached, a load or store instruction is reached whose address is based on a register that has been modified, or a branch target is crossed.
Claim 7
Dependent Claim
18 words
The method of claim 3, wherein said thread interrupting step uses an interval timer as a sampling trigger.
Claim 8
Dependent Claim
20 words
The method of claim 3, wherein said thread interrupting step uses a count of hardware events as a sampling trigger.
Claim 9
Dependent Claim
34 words
The method of claim 3, further comprising the step of: filtering said program counter returned in said returning step to determine whether said program counter is within a range of maximum and minimum values.
Claim 10
Dependent Claim
36 words
The method of claim 3, further comprising the step of: filtering said virtual memory address read in said reading step to determine whether said virtual memory address is within a range of maximum and minimum values.
Claim 11
Dependent Claim
22 words
The method of claim 3, further comprising the step of permitting a user to set a virtual memory address sampling granularity value.
Claim 12
Dependent Claim
19 words
The method of claim 3, further comprising the step of permitting a user to toggle sampling on and off.
Claim 13
Dependent Claim
21 words
The method of claim 3, further comprising the step of outputting said profile in real-time for display at a graphical user-interface.
Claim 14
Dependent Claim
37 words
The method of claim 2, further comprising the steps of: outputting said profile to a first data file; and outputting said placement data to a placement data file capable of being accessed by a memory placement tool.
Claim 15
Dependent Claim
22 words
The method of claim 6, wherein said thread interrupting step further comprises the step of: collecting samples at a predetermined sampling rate.
Claim 16
Dependent Claim
22 words
The method of claim 8, wherein said filtering step further comprises the step of: ignoring program counter events outside of said range.
Claim 17
Dependent Claim
22 words
The method of claim 9, wherein said filtering step further comprises the step of: ignoring virtual memory addresses outside of said range.
Claim 18
Dependent Claim
37 words
The method of claim 1, wherein said profile includes a histogram, wherein said generating step further comprises: generating a histogram that indicates a distribution in the frequencies at which virtual memory addresses are accessed by the thread.
Claim 19
Dependent Claim
26 words
The method of claim 1, wherein said generating step comprises: generating a profile that indicates the respective frequency at which each virtual memory address is accessed.
Claim 20
Dependent Claim
37 words
The method of claim 1, wherein said generating step comprises: generating a profile that indicates the frequency at which a virtual memory address is accessed relative to the frequencies at which other virtual memory addresses are accessed.
Claim 21
Independent Claim
42 words
A method for profiling frequencies of accesses made to a virtual memory by multiple program threads, comprising the steps of: running multiple program threads; and generating a profile that indicates the frequencies at which virtual memory addresses are accessed by each thread.
Claim 22
Independent Claim
42 words
A method for profiling frequencies of accesses made to a virtual memory by multiple program threads, comprising the steps of: running multiple program threads; and generating a profile that indicates the frequencies at which virtual memory addresses are accessed by each thread.
Claim 23
Dependent Claim
37 words
The method of claim 20, wherein said profile includes a histogram, wherein said generating step further comprises: generating a histogram that indicates a distribution in the frequencies at which virtual memory addresses are accessed by the thread.
Claim 24
Dependent Claim
26 words
The method of claim 20, wherein said generating step comprises: generating a profile that indicates the respective frequency at which each virtual memory address is accessed.
Claim 25
Dependent Claim
37 words
The method of claim 20, wherein said generating step comprises: generating a profile that indicates the frequency at which a virtual memory address is accessed relative to the frequencies at which other virtual memory addresses are accessed.
Claim 26
Independent Claim
43 words
A system for profiling frequencies of accesses made to a virtual memory by a program thread, comprising: means for running the program thread; and means for generating a profile that indicates the frequencies at which virtual memory addresses are accessed by the thread.
Claim 27
Independent Claim
43 words
A system for profiling frequencies of accesses made to a virtual memory by a program thread, comprising: means for running the program thread; and means for generating a profile that indicates the frequencies at which virtual memory addresses are accessed by the thread.
Claim 28
Dependent Claim
42 words
The system of claim 24, further comprising means for generating placement data that identifies at least one virtual address region for the program thread, said at least one virtual address region representing virtual memory addresses accessed relatively frequently by the program thread.
Claim 29
Dependent Claim
38 words
The system of claim 25, further comprising: means for outputting said profile to a first data file; and means for outputting said placement data to a placement data file capable of being accessed by a memory placement tool.
Claim 30
Dependent Claim
84 words
The system of claim 24, wherein said profile generating means comprises: means for interrupting the thread; means for returning a program counter; means for using said returned program counter to determine a valid load or store instruction for said thread in assembly code; means for reading a virtual memory address corresponding to said valid load or store instruction; and means for incrementing said profile based on said virtual memory address to track the frequencies at which virtual memory addresses are accessed by the thread.
Claim 31
Dependent Claim
84 words
The system of claim 27, wherein said valid load or store instruction determining means comprises: means for walking forward through said assembly code identified by said returned program counter until a valid load or store instruction is reached; means for tracking registers which get written; and means for aborting said walking when at least one of the following two conditions occurs: a branch is reached, or a load or store instruction is reached whose address is based on a register that has been modified.
Claim 32
Dependent Claim
89 words
The system of claim 27, wherein said valid load or store instruction determining means comprises: means for walking backward through said assembly code identified by said returned program counter until a valid load or store instruction is reached; means for tracking registers which get written; and means for aborting said walking when at least one of the following three conditions occurs: a branch is reached, a load or store instruction is reached whose address is based on a register that has been modified, or a branch target is crossed.
Claim 33
Dependent Claim
18 words
The system of claim 27, wherein said thread interrupting means uses an interval timer as a sampling trigger.
Claim 34
Dependent Claim
20 words
The system of claim 27, wherein said thread interrupting means uses a count of hardware events as a sampling trigger.
Claim 35
Dependent Claim
33 words
The system of claim 27, further comprising: means for filtering said program counter returned by said returning means to determine whether said program counter is within a range of maximum and minimum values.
Claim 36
Dependent Claim
35 words
The system of claim 27, further comprising: means for filtering said virtual memory address read by said reading means to determine whether said virtual memory address is within a range of maximum and minimum values.
Claim 37
Dependent Claim
21 words
The system of claim 27, further comprising means for permitting a user to set a virtual memory address sampling granularity value.
Claim 38
Dependent Claim
18 words
The system of claim 27, further comprising means for permitting a user to toggle sampling on and off.
Claim 39
Dependent Claim
20 words
The system of claim 27, further comprising means for outputting said profile in real-time for display at a graphical user-interface.
Claim 40
Dependent Claim
11 words
The system of claim 24, wherein said profile includes a histogram.
Claim 41
Dependent Claim
20 words
The system of claim 24, wherein said profile indicates the respective frequency at which each virtual memory address is accessed.
Claim 42
Dependent Claim
31 words
The system of claim 24, wherein said profile indicates the frequency at which a virtual memory address is accessed relative to the frequencies at which other virtual memory addresses are accessed.
Claim 43
Independent Claim
43 words
A system for profiling frequencies of accesses made to a virtual memory by multiple program threads, comprising: means for running multiple program threads; and means for generating a profile that indicates the frequencies at which virtual memory addresses are accessed by each thread.
Claim 44
Independent Claim
43 words
A system for profiling frequencies of accesses made to a virtual memory by multiple program threads, comprising: means for running multiple program threads; and means for generating a profile that indicates the frequencies at which virtual memory addresses are accessed by each thread.
Claim 45
Dependent Claim
11 words
The system of claim 40, wherein said profile includes a histogram.
Claim 46
Dependent Claim
20 words
The system of claim 40, wherein said profile indicates the respective frequency at which each virtual memory address is accessed.
Claim 47
Dependent Claim
31 words
The system of claim 40, wherein said profile indicates the frequency at which a virtual memory address is accessed relative to the frequencies at which other virtual memory addresses are accessed.
Claim 48
Dependent Claim
75 words
A virtual memory access thread profiling tool, comprising: a profile generator that generates a profile that indicates the frequencies at which virtual memory addresses are accessed by each thread; and a thread placement file generator for generating placement data based on said profile, wherein said placement data identifies at least one virtual address region for each thread, said at least one virtual address region representing virtual memory addresses accessed relatively frequently by the respective thread.
Claim 49
Dependent Claim
75 words
A virtual memory access thread profiling tool, comprising: a profile generator that generates a profile that indicates the frequencies at which virtual memory addresses are accessed by each thread; and a thread placement file generator for generating placement data based on said profile, wherein said placement data identifies at least one virtual address region for each thread, said at least one virtual address region representing virtual memory addresses accessed relatively frequently by the respective thread.
Claim 50
Dependent Claim
11 words
The system of claim 44, wherein said profile includes a histogram.
Claim 51
Dependent Claim
76 words
A computer program product comprising a computer usable medium having computer program logic recorded thereon for enabling a processor in a computer system to profile frequencies of accesses made to a virtual memory by a program thread, said computer program logic comprising: means for enabling the processor to run the program thread; and means for enabling the processor to generate a profile that indicates the frequencies at which virtual memory addresses are accessed by the thread.
Claim 52
Dependent Claim
76 words
A computer program product comprising a computer usable medium having computer program logic recorded thereon for enabling a processor in a computer system to profile frequencies of accesses made to a virtual memory by a program thread, said computer program logic comprising: means for enabling the processor to run the program thread; and means for enabling the processor to generate a profile that indicates the frequencies at which virtual memory addresses are accessed by the thread.
Claim 53
Dependent Claim
11 words
The system of claim 46, wherein said profile includes a histogram.
Claim 54
Independent Claim
33 words
A system comprising: a processor executing at least one program thread; and a profiling command for directing an operating system to profile frequencies of accesses made to a virtual memory by each thread.
Claim 55
Independent Claim
33 words
A system comprising: a processor executing at least one program thread; and a profiling command for directing an operating system to profile frequencies of accesses made to a virtual memory by each thread.
Claim 56
Dependent Claim
20 words
The system of claim 48, wherein said profile indicates the respective frequency at which each virtual memory address is accessed.
Claim 57
Dependent Claim
31 words
The system of claim 48, wherein said profile indicates the frequency at which a virtual memory address is accessed relative to the frequencies at which other virtual memory addresses are accessed.