IP Library Patent Application 16073335
Patent Application
App. No. 16/073,335

SYSTEM AND METHOD FOR HARDWARE-INDEPENDENT MEMORY STORAGE

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
16/073,335
Abstract

The embodiments of the present invention relate to a file system, and more particularly, a file system compatible with multiple types of non-volatile memory for safety-critical embedded systems, such as an Electronic Control Unit (ECU) of an automobile. Some examples of the disinitiate file closure include an ECU having RAM and non-volatile system memory managed by a file system.

Claims (77)

1 . A method of managing data in an electronic control unit of a vehicle having volatile and non-volatile memory, the method comprising the steps of:

determining whether a table of contents is stored on the non-volatile memory; and

if a table of contents is stored on the non-volatile memory:

retrieving the table of contents from the non-volatile memory including a plurality of entries, each respective entry including a respective address in the non-volatile memory at which respective data associated with the respective entry is stored;

in response to receiving one or more requests associated with a first entry of the plurality of entries,

loading first data associated with the first entry from a first address in the non-volatile memory to a second address in the volatile memory, and

storing the second address in the first entry of the plurality of entries of the table of contents, wherein the one or more requests originates from application code of the electronic control unit;

if a table of contents is not stored on the non-volatile memory:

creating the table of contents, including:

in response to a plurality of entry creation requests originating in the application code of the electronic control unit, creating a respective entry in the table of contents for each of the plurality of entry requests, and assigning a respective address in non-volatile memory to the respective entry in the table of contents.

2 . (canceled)

3 . The method of claim 1 , the method further comprising:

determining free space on the non-volatile memory; and

determining an address of the free space for assigning to an entry in the table of contents.

4 . The method of claim 1 , wherein determining whether the table of contents is stored on the non-volatile memory includes determining whether a version of the table of contents is stored on the non-volatile memory in response to an initialization request that specifies the version of the table of contents, the initialization request originating in the application code of the electronic control unit.

5 . The method of claim 1 , the method further comprising the steps of:

in response to one or more initialization requests, originating in the application code of the electronic control unit, for each respective entry of the plurality of entries in the retrieved table of contents:

loading respective data associated with the respective entry from the non-volatile memory to a respective address in the volatile memory, and

storing the respective address in the respective entry of the plurality of entries of the table of contents.

6 . The method of claim 1 , the method further comprising the step of, in response to one or more shutdown requests, loading data associated with selected entries of the table of contents from the volatile memory to the non-volatile memory.

7 . The method of claim 6 , the method further comprising the step of, further in response to the one or more shutdown requests, selecting only the entries of the table of contents that have been first loaded from non-volatile memory to volatile memory to be loaded back from the volatile memory to the non-volatile memory.

8 . The method of claim 1 , the method further comprising the steps of:

in response to a request to load data from volatile memory to non-volatile memory, the request originating in the application code of the electronic control unit:

determining a hardware type of the non-volatile memory, and

writing to the non-volatile memory in accordance with the hardware type of the non-volatile memory.

9 . A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors of an electronic control unit of a vehicle, causes the electronic control unit to perform a method of managing data in the electronic control unit including volatile and non-volatile memory, the method comprising the steps of:

determining whether a table of contents is stored on the non-volatile memory; and

if a table of contents is stored on the non-volatile memory:

retrieving the table of contents from the non-volatile memory including a plurality of entries, each respective entry including a respective address in the non-volatile memory at which respective data associated with the respective entry is stored; and

in response to receiving one or more requests associated with a first entry of the plurality of entries:

loading first data associated with the first entry from a first address in the non-volatile memory to a second address in the volatile memory, and

storing the second address in the first entry of the plurality of entries of the table of contents, wherein, the one or more requests originates from application code of the electronic control unit;

if a table of contents is not stored on the non-volatile memory:

creating the table of contents, including:

in response to a plurality of entry creation requests originating in the application code of the electronic control unit, creating a respective entry in the table of contents for each of the plurality of entry requests, and assigning a respective address in non-volatile memory to the respective entry in the table of contents.

10 . (canceled)

11 . The non-transitory computer-readable storage medium of claim 9 , the method further comprising the steps of:

determining free space on the non-volatile memory; and

determining an address of the free space for assigning to an entry in the table of contents.

12 . The non-transitory computer-readable storage medium of claim 9 , wherein determining whether the table of contents is stored on the non-volatile memory includes determining whether a version of the table of contents is stored on the non-volatile memory in response to an initialization request that specifies the version of the table of contents, the initialization request originating in the application code of the electronic control unit.

13 . The non-transitory computer-readable storage medium of claim 9 , the method further comprising the steps of:

in response to one or more initialization requests, originating in the application code of the electronic control unit, for each respective entry of the plurality of entries in the retrieved table of contents:

loading respective data associated with the respective entry from the non-volatile memory to a respective address in the volatile memory, and

storing the respective address in the respective entry of the plurality of entries of the table of contents.

14 . The non-transitory computer-readable storage medium of claim 9 , the method further comprising the step of, in response to one or more shutdown requests, loading data associated with selected entries of the table of contents from the volatile memory to the non-volatile memory.

15 . The non-transitory computer-readable storage medium of claim 14 , the method further comprising the step of, further in response to the one or more shutdown requests, selecting only the entries of the table of contents that have been first loaded from non-volatile memory to volatile memory to be loaded back from the volatile memory to the non-volatile memory.

16 . The non-transitory computer-readable storage medium of claim 9 , the method further comprising the steps of:

in response to a request to load data from volatile memory to non-volatile memory, the request originating in the application code of the electronic control unit:

determining a hardware type of the non-volatile memory, and

writing to the non-volatile memory in accordance with the hardware type of the non-volatile memory.

17 . A vehicle having:

a processor;

an electronic control unit;

a volatile memory;

a non-volatile memory; and

a non-transitory computer-readable storage medium, said medium containing executable instructions for causing the processor to perform a method of managing data in the electronic control unit, the method comprising the steps of:

determining whether a table of contents is stored on the non-volatile memory; and

if a table of contents is stored on the non-volatile memory:

retrieving a table of contents from the non-volatile memory including a plurality of entries, each respective entry including a respective address in the non-volatile memory at which respective data associated with the respective entry is stored; and

in response to one or more requests associated with a first entry of the plurality of entries, the one or more requests originating in application code of the electronic control unit:

loading first data associated with the first entry from a first address in the non-volatile memory to a second address in the volatile memory, and

storing the second address in the first entry of the plurality of entries of the table of contents;

if a table of contents is not stored on the non-volatile memory:

creating the table of contents, including:

in response to a plurality of entry creation requests originating in the application code of the electronic control unit, creating a respective entry in the table of contents for each of the plurality of entry requests, and assigning a respective address in non-volatile memory to the respective entry in the table of contents.

18 . (canceled)

19 . The vehicle of claim 17 , said method further comprising the steps of:

determining free space on the non-volatile memory; and

determining an address of the free space for assigning to an entry in the table of contents.

20 . The vehicle of claim 17 , wherein determining whether the table of contents is stored on the non-volatile memory includes determining whether a version of the table of contents is stored on the non-volatile memory in response to an initialization request that specifies the version of the table of contents, the initialization request originating in the application code of the electronic control unit.

21 . The vehicle of claim 17 , said method further comprising the steps of:

in response to one or more initialization requests, originating in the application code of the electronic control unit, for each respective entry of the plurality of entries in the retrieved table of contents:

loading respective data associated with the respective entry from the non-volatile memory to a respective address in the volatile memory, and

storing the respective address in the respective entry of the plurality of entries of the table of contents.

22 . The vehicle of claim 17 , said method further comprising the step of, in response to one or more shutdown requests, loading data associated with selected entries of the table of contents from the volatile memory to the non-volatile memory.

23 . The vehicle of claim 22 , said method further comprising the step of, further in response to the one or more shutdown requests, selecting only the entries of the table of contents that have been first loaded from non-volatile memory to volatile memory to be loaded back from the volatile memory to the non-volatile memory.

24 . (canceled)

Assignments (8)
SECURITY INTEREST Recorded Sep 25, 2024
From: FARADAY&FUTURE, INC.
To: SENYUN INTERNATIONAL LTD.
Reel/Frame 068698/0327 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: SLINDEE, RICHARD EDWARD; FERNANDO, JANA MAHEN; CHIDESTER, DOUGLAS D.
To: FARADAY&FUTURE INC.
Reel/Frame 064169/0532 →
SECURITY INTEREST Recorded Aug 15, 2022
From: FARADAY&FUTURE INC.
To: FF SIMPLICY VENTURES LLC
Reel/Frame 061176/0756 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 050234/0069 Recorded Jun 8, 2022
From: ARES CAPITAL CORPORATION, AS SUCCESSOR COLLATERAL AGENT
To: CITY OF SKY LIMITED; EAGLE PROP HOLDCO LLC; FARADAY & FUTURE INC.; FARADAY FUTURE LLC; FF EQUIPMENT LLC; FF HONG KONG HOLDING LIMITED; FF INC.; FF MANUFACTURING LLC; ROBIN PROP HOLDCO LLC; SMART KING LTD.; SMART TECHNOLOGY HOLDINGS LTD.; FARADAY SPE, LLC
Reel/Frame 060314/0263 →
ACKNOWLEDGEMENT OF SUCCESSOR COLLATERAL AGENT UNDER INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 29, 2021
From: BIRCH LAKE FUND MANAGEMENT, LP, AS RETIRING AGENT
To: ARES CAPITAL CORPORATION, AS SUCCESSOR AGENT
Reel/Frame 057019/0140 →
SECURITY INTEREST Recorded Oct 14, 2020
From: ROYOD LLC
To: BIRCH LAKE FUND MANAGEMENT, LP
Reel/Frame 054076/0157 →
ACKNOWLEDGEMENT OF SUCCESSOR COLLATERAL AGENT UNDER INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 5, 2020
From: BIRCH LAKE FUND MANAGEMENT, LP, AS RETIRING AGENT
To: ROYOD LLC, AS SUCCESSOR AGENT
Reel/Frame 052102/0452 →
SECURITY INTEREST Recorded May 1, 2019
From: CITY OF SKY LIMITED; EAGLE PROP HOLDCO LLC; FARADAY FUTURE LLC; FE EQUIPMENT LLC; FF HONG KONG HOLDING LIMITED; FF INC.; FF MANUFACTURING LLC; ROBIN PROP HOLDCO LLC; SMART KING LTD.; SMART TECHNOLOGY HOLDINGS LTD.; FARADAY SPE, LLC; FARADAY & FUTURE INC.
To: BIRCH LAKE FUND MANAGEMENT, LP
Reel/Frame 050234/0069 →