Instruction stream tracing of multi-threaded processors
First Claim
1. A method for real-time tracing of instruction streams for a multi-threaded processor, the method comprising:
- providing a multi-threaded processor comprising a tracing memory, a last thread register, and a tracing memory address counter configured to provide an address to the tracing memory;
storing, within the last thread register for each dispatch cycle of the multi-threaded processor, a current thread index for use as a last executed thread index during a next dispatch cycle;
storing, within a tracing memory at a location indicated by the tracing memory address counter for each dispatch cycle of the multi-threaded processor, state information corresponding to a current thread, wherein the current thread corresponds to one or more instructions that are dispatched for the current thread by a dispatch unit during that dispatch cycle of the multi-threaded processor;
wherein the state information comprises the last executed thread index provided by the last thread register and instruction information corresponding to the one or more instructions that are dispatched for the current thread by the dispatch unit during that dispatch cycle; and
wherein storing the state information including the last executed thread index occurs in real-time concurrent with instruction execution in the multi-threaded processor to enable reconstruction of thread sequencing.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for tracing instruction streams for a multi-threaded processor are disclosed herein. In one embodiment, the apparatus includes a last thread register configured to store a thread index that indicates a last executed thread, a tracing memory configured to store, within each of a plurality of storage locations, state information corresponding to a dispatch cycle for a multi-threaded processor, and a tracing control module configured to provide the state information to the tracing memory. The state information includes instruction information and a previous thread index. The state information may also include a flip bit that is used to determine a current insertion point within the tracing memory. A corresponding method is also disclosed herein.
93 Citations
19 Claims
-
1. A method for real-time tracing of instruction streams for a multi-threaded processor, the method comprising:
-
providing a multi-threaded processor comprising a tracing memory, a last thread register, and a tracing memory address counter configured to provide an address to the tracing memory; storing, within the last thread register for each dispatch cycle of the multi-threaded processor, a current thread index for use as a last executed thread index during a next dispatch cycle; storing, within a tracing memory at a location indicated by the tracing memory address counter for each dispatch cycle of the multi-threaded processor, state information corresponding to a current thread, wherein the current thread corresponds to one or more instructions that are dispatched for the current thread by a dispatch unit during that dispatch cycle of the multi-threaded processor; wherein the state information comprises the last executed thread index provided by the last thread register and instruction information corresponding to the one or more instructions that are dispatched for the current thread by the dispatch unit during that dispatch cycle; and wherein storing the state information including the last executed thread index occurs in real-time concurrent with instruction execution in the multi-threaded processor to enable reconstruction of thread sequencing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus for real-time tracing of instruction streams for a multi-threaded processor, the apparatus comprising:
-
a last thread register configured to store for each dispatch cycle of the multi-threaded processor, a current thread index for use as a last executed thread index during a next dispatch cycle; a tracing memory address counter configured to provide an address to the tracing memory for each dispatch cycle of the multi-threaded processor; a tracing memory configured to store, for each dispatch cycle of the multi-threaded processor, within a storage location indicated by the tracing memory address counter, state information corresponding to a current thread, wherein the current thread corresponds to one or more instructions that are dispatched for the current thread by a dispatch unit during that dispatch cycle for the multi-threaded processor; a tracing control module configured to provide the state information to the tracing memory; wherein the state information comprises the last executed thread index provided by the last thread register and instruction information corresponding to the one or more instructions that are dispatched for the current thread by the dispatch unit; and wherein the state information including the last executed thread index is stored in the tracing memory in real-time concurrent with instruction execution in the multi-threaded processor to enable reconstruction of thread sequencing. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
Specification