# US 10,310,773 B2 · Systems and methods for retaining data in a memory

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

- Number: US 10,310,773 B2
- Document ID: US10310773B2
- Status: Granted
- Kind: B2
- Application number: 15/873,064
- Filed: 2018-01-17
- Published: 2018-05-24
- Granted: 2019-06-04
- Earliest claimed: 2014-03-21
- Assignees: GM Global Technology Operations LLC
- Applicants: GM Global Technology Operations LLC
- Inventors: Fred W. Huntzicker
- Web page: https://patentgrep.com/patent/US10310773B2

## CPC

- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G11B 20/10527: {Audio or video recording; Data buffering arrangements (G11B20/12 - G11B20/18 take precedence)}
- G11C 7/16: Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters
- G11B 2020/10666: {Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

Methods, systems, and vehicles are provided for retaining data in a vehicle. In various embodiments, the vehicle includes a sensor, a processor, and a memory. The sensor is configured to sense an aspect of the vehicle. The processor is configured to receive data from the sensor, sample the data at a first rate and retain the data at a second rate that is less than the first rate while the vehicle is in operation. The memory is in communication with the processor, and includes a plurality of storage locations each identified with a unique address. The processor is further configured to determine a current storage location address for a latest sample of the data at the first rate such that older samples of data are retained at the second rate less frequent than the first rate while the vehicle is in operation.

## Claims

### Claim 1

A method of retaining data in a memory of a vehicle having a plurality of data storage locations, the method comprising, while the vehicle is in operation:
receiving data via a computer processor onboard the vehicle;
sampling the data at a first sampling rate, automatically via the computer processor onboard the vehicle;
retaining the data at a second rate that is less than the first sampling rate, via the computer processor onboard the vehicle;
determining, via the computer processor onboard the vehicle, a current storage location address in non-transitory computer memory onboard the vehicle for a latest sample of the data at the first sampling rate such that older samples of data are retained at a second sampling rate less frequent than the first sampling rate, wherein the current storage address is determined based on a plurality of parameters for the non-transitory computer memory, including: a minimum address Addmin, a modula index ModIdx that equal to a number of arrays, and a size Mmax of a respective array; and
storing, via the computer processor onboard the vehicle, the latest sample of the data at the current storage location address in the non-transitory computer memory onboard the vehicle;
wherein:
newer samples of data are automatically retained at a rate that is more frequent than the retention of older samples of data; and
when the newer data is received, a first part of the older data is selectively maintained in the non-transitory computer memory, whereas a second part of the older data is selectively overwritten in the non-transitory computer memory by the newer data at the current storage address of the non-transitory computer memory based on the plurality of parameters for the non-transitory computer memory, including: the minimum address Addmin the modula index ModIdx, and the size Mmax of the respective array; and
wherein determining the current storage location address (Adds) is determined with the expression:
Add
s
=
Add
m
⁢
⁢
i
⁢
⁢
n
+
{
∑
k
=
0
T
s
⁢
m
⁢
⁢
od
⁢
⁢
ModIdx
⁢
M
ma
⁢
⁢
x
⁡
(
k
-
1
)
}
+
int
⁡
(
T
s
ModIdx
)
⁢
mod
⁢
⁢
M
ma
⁢
⁢
x
⁡
(
T
s
⁢
mod
⁢
⁢
ModIdx
)
wherein Addmin is a minimum address, ModIdx is a modula index equal to the number of arrays, Ts is a consecutive integer representing the latest sample of the data, and Mmax n represents the size of the respective array.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the current storage location is performed utilizing modular arithmetic.

### Claim 3 (depends on 1)

The method of claim 1, further comprising partitioning the data storage locations of the non-transitory computer memory onboard the vehicle into a plurality of arrays.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving an event notification; and
communicating the data stored in the data storage locations to a remote server that is remote from the vehicle, using a vehicle radio via instructions provided by the computer processor onboard the vehicle, in response to receiving the event notification.

### Claim 5 (depends on 1)

The method of claim 1, wherein the steps of receiving data, sampling the data at a first sampling rate, retaining the data at a second rate that is less than the first rate, determining a current storage location address for a latest sample of the data at the first sampling rate such that older samples of data are retained at a second sampling rate less frequent than the first sampling rate, and storing the latest sample of the data at the current storage location address are performed continuously throughout operation of the vehicle.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data is recorded at a constant rate throughout usage of the vehicle, at a recording rate that is different from the second rate.

### Claim 7

A vehicle, comprising:
a sensor configured to sense an aspect of the vehicle;
a processor configured to receive data from the sensor, sample the data at a first rate and retain the data at a second rate that is less than the first rate while the vehicle is in operation;
a memory in communication with the processor, the memory including a plurality of storage locations each identified with a unique address;
wherein the processor is further configured to determine a current storage location address in the memory for a latest sample of the data at the first rate such that older samples of data are retained at the second rate less frequent than the first rate while the vehicle is in operation, wherein the current storage address is determined based on a plurality of parameters for the non-transitory computer memory, including: a minimum address Addmin, a modula index ModIdx that equal to a number of arrays, and a size Mmax of a respective array; and
wherein the latest sample of data is received, a first part of the older samples of data is selectively maintained in the non-transitory computer memory, whereas a second part of the older samples of data is selectively overwritten in the non-transitory computer memory by the latest sample of data at the current storage address of the non-transitory computer memory based on the plurality of parameters for the non-transitory computer memory, including: the minimum address Addmin, the modula index ModIdx, and the size Mmax of the respective array; and
wherein the processor is configured to determine the current storage location address (Adds) with the expression:
Add
s
=
Add
m
⁢
⁢
i
⁢
⁢
n
+
{
∑
k
=
0
T
s
⁢
modModIdx
⁢
M
ma
⁢
⁢
x
⁡
(
k
-
1
)
}
+
int
⁡
(
T
s
ModIdx
)
⁢
mod
⁢
⁢
M
ma
⁢
⁢
x
⁡
(
T
s
⁢
mod
⁢
⁢
ModIdx
)
,
wherein Addmin is a minimum address, ModIdx is a modula index equal to the number of arrays, Ts is a consecutive integer representing the latest sample of the data, and Mmax n represents the size of the respective array.

### Claim 8 (depends on 7)

The vehicle of claim 7, wherein the processor is configured to receive the data, sample the data at a first sampling rate, retain the data at a second rate that is less than the first rate, determine a current storage location address for a latest sample of the data at the first sampling rate such that older samples of data are retained at a second sampling rate less frequent than the first sampling rate, and store the latest sample of the data at the current storage location address are performed continuously throughout operation of the vehicle.

### Claim 9 (depends on 7)

The vehicle of claim 7, wherein the data is recorded at a constant rate throughout usage of the vehicle, at a recording rate that is different from the second rate.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
receiving a vehicle event notification; and
in response to the vehicle event notification, maintaining and providing a record with varying retention rates for retention of data, going back in time prior to the vehicle event, via instructions provided by the computer processor onboard the vehicle.

### Claim 11 (depends on 10)

The method of claim 10, wherein the varying retention rates as a function of time are stored prior to the vehicle event notification.

### Claim 12 (depends on 7)

The vehicle of claim 7, further comprising:
a receiver configured to receive a vehicle event notification; and
the processor is configured, in response to the vehicle event notification, maintain in the memory and provide a record with varying retention rates for retention of data, going back in time prior to the vehicle event, via instructions provided by the computer processor onboard the vehicle.

### Claim 13

A method of retaining data in a memory of a vehicle having a plurality of data storage locations, the method comprising, while the vehicle is in operation:
receiving data via a computer processor onboard the vehicle;
storing, via the computer processor onboard the vehicle, the latest sample of the data at a current storage location address at a constant storing rate to a non-transitory computer memory onboard the vehicle, wherein the current storage location address (Adds) with the expression:
Add
s
=
Add
m
⁢
⁢
i
⁢
⁢
n
+
{
∑
k
=
0
T
s
⁢
modModIdx
⁢
M
m
⁢
⁢
a
⁢
⁢
x
⁡
(
k
-
1
)
}
+
int
⁡
(
T
s
ModIdx
)
⁢
mod
⁢
⁢
M
m
⁢
⁢
a
⁢
⁢
x
⁡
(
T
s
⁢
mod
⁢
⁢
ModIdx
)
wherein Addmin is a minimum address, ModIdx is a modula index equal to the number of arrays, Ts is a consecutive integer representing the latest sample of the data, and Mmax n represents the size of the respective array; and
retaining the data at a plurality of retaining rates, each of the second rates being less than the first rate;
wherein newer samples of data are automatically retained at a first sampling rate, and older samples of data are automatically retained at a second sampling rate that is less frequent than the first sampling rate; and
wherein, when the newer data is received, a first part of the older data is maintained in the non-transitory computer memory, whereas a second part of the older data is overwritten in the current storage location non-transitory computer memory by the newer data as determined by the expression, based on the minimum address Addmin, the modula index ModIdx, and the equal to the number of arrays, Ts the consecutive integer representing the latest sample of the data, and represents the size Mmax n of the respective array.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
receiving a vehicle event notification; and
in response to the vehicle event notification, maintaining and providing a record with varying retention rates for retention of data, going back in time prior to the vehicle event, via instructions provided by the computer processor onboard the vehicle;
wherein the varying retention rates as a function of time are stored prior to the vehicle event notification.
