# US 2017/0255485 A1 · Data processing system having dynamic thread control

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0255485 A1
- Document ID: US20170255485A1
- Status: Published application
- Kind: A1
- Application number: 15/060,692
- Filed: 2016-03-04
- Published: 2017-09-07
- Earliest claimed: 2016-03-04
- Assignees: Freescale Semiconductor, Inc.
- Applicants: Freescale Semiconductor Inc.
- Inventors: Jonathan J. Gamoneda; Jehoda Refaeli; Jeffrey W. Scott
- Web page: https://patentgrep.com/patent/US20170255485A1

## CPC

- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 11/3648: {using additional hardware}
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/34: Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation {; Recording or statistical evaluation of user activity, e.g. usability assessment}
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 11/3471: {Address tracing}
- G06F 11/36: Prevention of errors by analysis, debugging or testing of software
- G06F 11/3636: {by tracing the execution of the program}
- G06F 2201/865: Monitoring of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for managing thread execution in a processing system is provided. The method includes setting a first watchpoint, and generating a first watchpoint trigger corresponding to the first watchpoint. In response to the first watchpoint trigger, execution of a first thread is controlled in accordance with a value stored in a first control register. Controlling the first thread may further include disabling execution of the first thread. The disabling execution of the first thread may occur within the first watchpoint region.

## Claims

### Claim 1

A method for managing thread execution in a processing system, the method comprising:
setting a first watchpoint;
generating a first watchpoint trigger corresponding to the first watchpoint; and
in response to the first watchpoint trigger, controlling execution of a first thread in accordance with a value stored in a first control register.

### Claim 2 (depends on 1)

The method of claim 1, further comprising generating a second watchpoint trigger corresponding to a second watchpoint, and in response to the second watchpoint trigger, resuming normal execution of the first thread.

### Claim 3 (depends on 2)

The method of claim 2, wherein controlling the first thread further comprises disabling execution of the first thread, the disabling execution of the first thread occurring between the first watchpoint trigger and the second watchpoint trigger.

### Claim 4 (depends on 2)

The method of claim 2, wherein controlling the first thread further comprises throttling execution of the first thread between the first watchpoint trigger and the second watchpoint trigger.

### Claim 5 (depends on 1)

The method of claim 1, further comprising setting a flag in the first control register, the flag providing an indication to a second thread that execution of one or more threads is affected by the first watchpoint trigger.

### Claim 6 (depends on 1)

The method of claim 1, wherein setting the first watchpoint further comprises setting the first watchpoint during execution of boot code.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first watchpoint is triggered by an interrupt during execution of application code.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first watchpoint includes a watchpoint start address and the second watchpoint includes a watchpoint end address.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
enabling a first watchpoint region by setting the first watchpoint and the second watchpoint; and
using a debug unit for determining that code execution enters the first watchpoint region, and for generating the first watchpoint trigger corresponding to code execution entering the first watchpoint region.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
enabling a second watchpoint region;
generating a third watchpoint trigger corresponding to code execution entering the second watchpoint region; and
in response to the third watchpoint trigger, controlling execution of a second thread in accordance with a value stored in a second control register.

### Claim 11

A method for managing thread execution in a processing system, the method comprising:
enabling a first watchpoint region, the first watchpoint region beginning at a first watchpoint and ending at a second watchpoint;
generating a first watchpoint trigger corresponding to a first address of executing code matching the first watchpoint; and
in response to the first watchpoint trigger, controlling execution of a first thread based on a value stored in a first control register.

### Claim 12 (depends on 11)

The method of claim 11, further comprising generating a second watchpoint trigger corresponding to a second address of executing code matching the second watchpoint, and in response to the second watchpoint trigger, resuming normal execution of the first thread.

### Claim 13 (depends on 12)

The method of claim 12, wherein controlling the first thread further comprises disabling execution of the first thread, the disabling execution of the first thread occurring within the watchpoint region.

### Claim 14 (depends on 12)

The method of claim 12, wherein controlling the first thread further comprises throttling execution of the first thread, the throttling execution of the first thread occurring within the watchpoint region.

### Claim 15 (depends on 11)

The method of claim 11, further comprising setting a flag in the first control register, the flag providing an indication to a second thread that execution of one or more threads is affected by code execution in the first watchpoint region.

### Claim 16 (depends on 11)

The method of claim 11, wherein the first address of executing code matching the first watchpoint is a first program counter address of executing code matching the first watchpoint.

### Claim 17 (depends on 11)

The method of claim 11, wherein enabling the first watchpoint region further comprises enabling the first watchpoint region during execution of boot code.

### Claim 18

A processing system, comprising:
a processor capable of executing code;
a memory coupled to the processor, the memory storing executable code;
a control unit coupled to the processor, the control unit including a control register, and in response to a watchpoint trigger, the control unit controls execution of one or more threads based on a value stored in the control register; and
a debug unit coupled to the control unit, the debug unit generating the watchpoint trigger based on code execution entering a first watchpoint region of the memory.

### Claim 19 (depends on 18)

The processing system of claim 18, wherein the debug unit further comprises generating a second watchpoint trigger based code execution exiting the first watchpoint region, and in response to the second watchpoint trigger, resuming normal execution of the thread.

### Claim 20 (depends on 19)

The processing system of claim 19, wherein the control unit controlling the first thread further comprises disabling execution of the first thread, the disabling execution of the first thread occurring between the first watchpoint trigger and the second watchpoint trigger.
