# US 9,519,491 B2 · Time monitoring in a processing element and use

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

- Number: US 9,519,491 B2
- Document ID: US9519491B2
- Status: Granted
- Kind: B2
- Application number: 15/067,045
- Filed: 2016-03-10
- Published: 2016-07-07
- Granted: 2016-12-13
- Earliest claimed: 2012-10-15
- Assignees: National Instruments Corporation
- Applicants: National Instruments Corporation
- Inventors: Sundeep Chandhoke
- Web page: https://patentgrep.com/patent/US9519491B2

## CPC

- G06F 9/4418: {Suspend and resume; Hibernate and awake}
- G06F 1/12: Synchronisation of different clock signals {provided by a plurality of clock generators}
- G06F 9/4825: {Interrupt from clock, e.g. time of day}
- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

System and method for controlling thread execution via time monitoring circuitry in a processing element. Execution of a thread may be suspended via a thread suspend/resume logic block included in the processing element in response to a received suspend thread instruction. An indication of a wakeup time may be received to a time monitoring circuit (TMC) included in the processing element. Time may be monitored via the TMC using a clock included in the processing element, until the wakeup time obtains. The thread suspend/resume logic block included in the processing element may be invoked by the TMC in response to the wakeup time obtaining, thereby resuming execution of the thread

## Claims

### Claim 1

A system comprising:
a processing element, comprising:
a clock;
a thread suspend/resume logic block, configured to suspend execution of a thread without interrupting the processing element and in response to a received suspend thread instruction;
a local reference clock, coupled to the processing element and to a peripheral device, wherein the peripheral device is configured to provide a global time to the processing element; and
a time monitor circuit (TMC), wherein the TMC is configured to:
receive an indication of a wakeup time;
discipline the clock via adjustment of the global time based on a difference between a local reference time and a subsequent local reference time, thereby compensating for latency due to the provision of the global time by the software, wherein the subsequent local reference time is retrieved from the local reference clock, wherein the global time is provided by software, and wherein to provide the global time, the software is executable to:
retrieve the local reference time from the local reference clock that corresponds to the global time; and
provide the global time and the local reference time to the processing element;
monitor time via the clock until the wakeup time obtains; and
invoke the thread suspend/resume logic block to resume execution of the thread in response to the wakeup time obtaining.

### Claim 2 (depends on 1)

The system of claim 1, wherein the indication of the wakeup time is an absolute time.

### Claim 3 (depends on 1)

The system of claim 1, wherein the indication of the wakeup time is a relative time.

### Claim 4 (depends on 1)

The system of claim 1, wherein the local reference clock is connected directly to the processing element and the peripheral device.

### Claim 5 (depends on 1)

The system of claim 1, wherein an external time source comprises an external hardware signal, wherein the external hardware signal comprises an epoch and a clock signal.

### Claim 6

A method, comprising:
receiving an indication of a wakeup time to a time monitoring circuit (TMC) comprised in a processing element;
suspending execution of a thread without interrupting the processing element via a thread suspend/resume logic block comprised in the processing element in response to a received suspend thread instruction;
disciplining a clock comprised in the processing element via adjustment of a global time based on a difference between a local reference time and a subsequent local reference time, thereby compensating for latency due to the provision of the global time by the software, wherein the subsequent local reference time is retrieved from a local reference clock comprised in the processing element, wherein the global time is provided by software, and wherein to provide the global time, the software is executable to:
retrieve the local reference time from the local reference clock that corresponds to the global time; and
provide the global time and the local reference time to the processing element;
monitoring time, via the TMC using a clock comprised in the processing element, until the wakeup time obtains; and
invoking the thread suspend/resume logic block via the TMC in response to the wakeup time obtaining, thereby resuming execution of the thread.

### Claim 7 (depends on 6)

The method of claim 6, wherein the indication of the wakeup time is an absolute time.

### Claim 8 (depends on 6)

The method of claim 6, wherein the indication of the wakeup time is a relative time.

### Claim 9 (depends on 6)

The method of claim 6, wherein the local reference clock is connected directly to the processing element and the peripheral device.

### Claim 10 (depends on 6)

The method of claim 6, wherein an external time source comprises an external hardware signal, wherein the external hardware signal comprises an epoch and a clock signal.

### Claim 11

A system comprising:
a processing element, comprising:
a clock;
a thread suspend/resume logic block, configured to suspend execution of a thread in response to a received suspend thread instruction; and
a time monitor circuit (TMC); and
a local reference clock, connected directly to the processing element and to a network interface controller (NIC);
wherein the TMC is configured to:
receive an indication of a wakeup time;
discipline the clock via adjustment of the global time based on a difference between a local reference time and a subsequent local reference time, thereby compensating for latency due to the provision of the global time by the software, wherein the subsequent local reference time is retrieved from the local reference clock, wherein the global time is provided by software, and wherein to provide the global time, the software is executable to:
retrieve the local reference time from the local reference clock that corresponds to the global time; and
provide the global time and the local reference time to the processing element;
monitor time via the clock until the wakeup time obtains; and
invoke the thread suspend/resume logic block to resume execution of the thread in response to the wakeup time obtaining.

### Claim 12 (depends on 11)

The system of claim 11, wherein an external time source comprises an external hardware signal, wherein the external hardware signal comprises an epoch and a clock signal.
