# US 9,519,497 B1 · Managing visual updates

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

- Number: US 9,519,497 B1
- Document ID: US9519497B1
- Status: Granted
- Kind: B1
- Application number: 14/251,759
- Filed: 2014-04-14
- Granted: 2016-12-13
- Earliest claimed: 2010-12-30
- Assignees: The MathWorks, Inc.
- Applicants: The Mathworks, Inc.
- Inventors: Jason J. Schickler; Donald P. Orofino
- Web page: https://patentgrep.com/patent/US9519497B1

## CPC

- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 3/1415: {with means for detecting differences between the image stored in the host and the images displayed on the displays}
- G06F 16/2393: {Updating materialised views}
- G06F 16/273: {Asynchronous replication or reconciliation}
- G09G 5/006: {Details of the interface to the display terminal (specific for a display terminal using a CRT G09G1/167; using a flat panel G09G3/2096; circuits for interfacing with colour displays G09G5/04)}
- G09G 2340/0435: Change or adaptation of the frame rate of the video stream
- G09G 2370/10: Use of a protocol of communication by packets in interfaces along the display data pipeline
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)

## Abstract

A system is configured to: conduct asynchronous updates, of a display, based on a fixed rate when operating in an asynchronous state; determine whether to switch to a synchronous state from the asynchronous state based on the asynchronous updates; conduct synchronous updates, of the display, after switching to the synchronous state; receive a lock request, and conduct updating of the display based on the lock request. The synchronous updates may be performed independent of the fixed rate.

## Claims

### Claim 1

One or more non-transitory computer-readable media storing instructions, the instructions comprising:
one or more instructions that, when executed by one or more processors, cause the one or more processors to:
receive, during a first period of time and at a first frequency, a first set of data generated during an execution of a model;
determine that the first frequency is less than a threshold frequency for receiving data generated during the execution of the model,
the threshold frequency being based on an ability to perceive changes to a visual representation;
perform, during the first period of time and based on the first frequency being less than the threshold frequency, a synchronous update of a display of the visual representation of the execution of the model using the first set of data;
receive, during a second period of time and at a second frequency, a second set of data generated during the execution of the model;
determine that the second frequency is not less than the threshold frequency; and
perform, during the second period of time and based on the second frequency not being less than the threshold frequency, an asynchronous update of the visual representation,
the one or more instructions to perform the asynchronous update of the visual representation including:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
buffer the second set of data in a memory, and
update the display of the visual representation at a third frequency, that is less than the threshold frequency, using the buffered second set of data.

### Claim 2 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, where the threshold frequency is set at or above 20 Hz.

### Claim 3 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, where the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
receive, during a third period of time and at a fourth frequency, a third set of data generated during the execution of the model;
determine that the fourth frequency is less than the threshold frequency;
determine whether the memory includes additional data for updating the visual representation; and
perform the synchronous update of the display of the visual representation using the third set of data when the memory does not include the additional data.

### Claim 4 (depends on 3)

The one or more non-transitory computer-readable media of claim 3, where the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
perform the asynchronous update of the display of the visual representation using the third set of data when the memory includes the additional data.

### Claim 5 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, where the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
receive a request to switch to a synchronous lock state;
switch to the synchronous lock state based on the request;
receive a third set of data at the second frequency; and
perform the synchronous update of the display of the visual representation using the third set of data based on switching to the synchronous lock state.

### Claim 6 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, where the visual representation includes a graph,
where the one or more instructions to receive the first set of data include:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
receive information identifying coordinates corresponding to a series of points; and
where the one or more instructions to perform the synchronous update include:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
cause a plot of the series of points to be displayed on the graph based on the coordinates.

### Claim 7 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, where the one or more processors are included in a first computing device; and
where the one or more instructions to receive the first set of data include:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
receive, from a second computing device and via a network, the first set of data,
the second computing device executing the model to generate the first set of data.

### Claim 8 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, where the one or more instructions to update the display of the visual representation at the third frequency include:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
measure a wait time from when a last update of the display of the visual representation was performed,
determine whether the wait time corresponds to the third frequency, and
update the display of the visual representation when the wait time corresponds to the third frequency.

### Claim 9

A device comprising:
one or more processors to:
obtain, during a first period of time and at a first frequency, a first set of data generated during an execution of a model;
determine that the first frequency is less than or equal to a threshold frequency associated with updating a display of a visual representation of the execution of the model,
the threshold frequency being based on an ability to perceive changes to a visual representation;
perform, during the first period of time and based on the first frequency being less than or equal to the threshold frequency, a synchronous update of the display of the visual representation using the first set of data;
obtain, during a second period of time and at a second frequency, a second set of data generated during the execution of the model;
determine that the second frequency is greater than the threshold frequency; and
perform, during the second period of time and based on the second frequency being greater than the threshold frequency, an asynchronous update of the visual representation,
when performing the asynchronous update of the visual representation, the one or more processors being to:
buffer the second set of data in a memory, and
update the display of the visual representation at a third frequency using the buffered second set of data.

### Claim 10 (depends on 9)

The device of claim 9, where the threshold frequency is set at or above 20 Hz.

### Claim 11 (depends on 9)

The device of claim 9, where the one or more processors are further to:
receive, during a third period of time and at a fourth frequency, a third set of data generated during the execution of the model;
determine that the fourth frequency is less than or equal to the threshold frequency;
determine whether the memory includes additional data for updating the visual representation; and
perform the synchronous update of the display of the visual representation using the third set of data when the memory does not include the additional data.

### Claim 12 (depends on 11)

The device of claim 11, where the one or more processors are further to:
perform the asynchronous update of the display of the visual representation using the third set of data when the memory includes the additional data.

### Claim 13 (depends on 9)

The device of claim 9, where the one or more processors are further to:
receive a request to switch to a synchronous lock state;
switch to the synchronous lock state based on the request;
receive a third set of data at the second frequency; and
perform the synchronous update of the display of the visual representation using the third set of data based on switching to the synchronous lock state.

### Claim 14 (depends on 9)

The device of claim 9, where the display of the visual representation includes a display of a graph,
where, when receiving the first set of data, the one or more processors are to:
receive information identifying coordinates corresponding to a series of points; and
where, when performing the synchronous update, the one or more processors are to:
generate a plot of the series of points on the graph based on the coordinates, and
cause the plot of the series of points to be displayed on the display of the graph.

### Claim 15 (depends on 9)

The device of claim 9, where, when obtaining the first set of data, the one or more processors are to:
receive, from another device, the first set of data,
the other device executing the model to generate the first set of data, and
the other device transmitting the first set of data to the device via a network.

### Claim 16 (depends on 9)

The device of claim 9, where, when updating the display of the visual representation at the third frequency, the one or more processors are to:
determine an amount of time from when a previous update of the display of the visual representation was performed,
determine whether the amount of time corresponds to the third frequency, and
update the display of the visual representation when the amount of time corresponds to the third frequency.

### Claim 17

A method comprising:
obtaining, at a first time, first data generated during an execution of a model,
the obtaining the first data being performed by a computing device;
generating a visual representation of the execution of the model based on the first data,
the generating the visual representation being performed by the computing device;
providing the visual representation for display,
the providing being performed by the computing device;
obtaining, at a second time, second data generated during the execution of the model,
the obtaining the second data being performed by the computing device;
determining that an amount of time between first time and the second time is less than a threshold amount of time associated with updating a display of the visual representation,
the threshold amount of time being based on an ability to perceive changes to the visual representation, and
the determining that the amount of time between the first time and the second time being less than the threshold amount of time being performed by the computing device;
storing the second data in a memory based on the amount of time between first time and the second time is less than the threshold amount of time,
the storing the second data being performed by the computing device;
obtaining, at a third time, third data generated during the execution of the model,
the obtaining the third data being performed by the computing device;
determining that the second data is stored in the memory,
the determining that the second data is stored in the memory being performed by the computing device;
storing the third data in the memory based on the second data being stored in the memory,
the storing the third data in the memory being performed by the computing device;
determining, based on the first time, whether a fixed amount of time has elapsed,
the determining that the fixed amount of time has elapsed being performed by the computing device; and
causing the display of the visual representation to be updated based on the second data when the fixed amount of time has elapsed since obtaining the first data,
causing the display of the visual representation to be updated being performed by the computing device.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
determining, based on the second time, whether another fixed amount of time has elapsed since the fixed amount of time has elapsed,
the other fixed amount of time being associated with obtaining the second data; and
causing the display of the visual representation to be updated based on the third data when the other fixed amount of time has elapsed.

### Claim 19 (depends on 17)

The method of claim 17, where determining whether the fixed amount of time has elapsed includes:
measuring another amount of time from when the visual representation was provided for display, and
determining that the other amount of time corresponds to a predefined rate associated with updating the display of the visual representation.

### Claim 20 (depends on 17)

The method of claim 17, further comprising:
causing the execution of the model; and
where obtaining the first data includes:
generating the first data during the execution of the model.
