IP Library Patent Application 15199844
Patent Application
App. No. 15/199,844

FLASH EMULATED EEPROM WRAPPER

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.
15/199,844
Abstract

This relates to a file system, and more particularly to, 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 disclosure include an ECU having RAM and non-volatile memory managed by a file system. In some examples, non-volatile memory can include a flash-emulated EEPROM (FEE) device. A wrapper function can provide an interface between a file system and one or more hardware devices, allowing the file system and application code to be compatible with multiple kinds of hardware.

Claims (86)

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

at the electronic control unit of the vehicle:

retrieving a table of contents from the non-volatile memory including a plurality of entries, each respective entry of the plurality of entries including a respective address in the non-volatile memory where 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, 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.

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

upon powering on the electronic control unit, determining whether the table of contents is stored on the non-volatile memory; and

in accordance with the table of contents not being stored on the non-volatile memory, creating the table of contents, including:

in response to receiving 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.

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

in response to receiving 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.

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

in response to receiving 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.

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

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

determining a hardware type of the non-volatile memory,

determining a third address in the non-volatile memory at which to load the second data, the third address in a first domain,

converting the third address to a second domain in accordance with the hardware type of the non-volatile memory, and

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

6 . The method of claim 5 , wherein a location in the non-volatile memory associated with the third address in the second domain further comprises third data, and writing the second data to the non-volatile memory comprises re-writing the third data.

7 . The method of claim 5 , the method further comprising:

while performing any one of determining the hardware type, determining the third address, converting the third address, and writing to the non-volatile memory, receiving a request to load third data from volatile memory to non-volatile memory, and

in response to the request to load the third data from volatile memory to non-volatile memory:

waiting until writing the second data to the non-volatile memory is complete, and after waiting until writing the second data is complete:

determining a fourth address in the non-volatile memory at which to load the third data; and

writing the third data to the non-volatile memory.

8 . 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:

at the electronic control unit of the vehicle:

retrieving a table of contents from the non-volatile memory including a plurality of entries, each respective entry of the plurality of entries including a respective address in the non-volatile memory where 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, 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.

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

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

in accordance with the table of contents not being 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 . The non-transitory computer-readable storage medium of claim 8 , the method further comprising:

in response to receiving 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.

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

in response to receiving 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.

12 . The non-transitory computer-readable storage medium of claim 8 , the method further comprising:

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

determining a hardware type of the non-volatile memory,

determining a third address in the non-volatile memory at which to load the second data, the third address in a first domain,

converting the third address to a second domain in accordance with the hardware type of the non-volatile memory, and

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

13 . The non-transitory computer-readable storage medium of claim 12 , wherein a location in the non-volatile memory associated with the third address in the second domain further comprises third data, and writing the second data to the non-volatile memory comprises re-writing the third data.

14 . The non-transitory computer-readable storage medium of claim 12 , the method further comprising:

while performing any one of determining the hardware type, determining the third address, converting the third address, and writing to the non-volatile memory, receiving a request to load third data from volatile memory to non-volatile memory, and

in response to the request to load the third data from volatile memory to non-volatile memory:

waiting until writing the second data to the non-volatile memory is complete, and

after waiting until writing the second data is complete:

determining a fourth address in the non-volatile memory at which to load the third data; and

writing the third data to the non-volatile memory.

15 . A vehicle comprising an electronic control unit, the electronic control unit configured for:

retrieving a table of contents from the non-volatile memory including a plurality of entries, each respective entry of the plurality of entries including a respective address in the non-volatile memory where 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, 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.

16 . The vehicle of claim 15 , wherein the electronic control unit is further configured for:

upon powering on the electronic control unit, determining whether the table of contents is stored on the non-volatile memory; and

in accordance with the table of contents not being stored on the non-volatile memory, creating the table of contents, including:

in response to receiving 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.

17 . The vehicle of claim 15 , wherein the electronic control unit is further configured for:

in response to receiving 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.

18 . The vehicle of claim 15 , wherein the electronic control unit is further configured for:

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

determining a hardware type of the non-volatile memory,

determining a third address in the non-volatile memory at which to load the second data, the third address in a first domain,

converting the third address to a second domain in accordance with the hardware type of the non-volatile memory, and

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

19 . The vehicle of claim 15 , wherein a location in the non-volatile memory associated with the third address in the second domain further comprises third data, and writing the second data to the non-volatile memory comprises re-writing the third data.

20 . The vehicle of claim 15 , wherein the electronic control unit is further configured for:

while performing any one of determining the hardware type, determining the third address, converting the third address, and writing to the non-volatile memory, receiving a request to load third data from volatile memory to non-volatile memory, and

in response to the request to load the third data from volatile memory to non-volatile memory:

waiting until writing the second data to the non-volatile memory is complete, and

after waiting until writing the second data is complete:

determining a fourth address in the non-volatile memory at which to load the third data; and

writing the third data to the non-volatile memory.

Assignments (8)
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 →
RELEASE OF SECURITY INTEREST Recorded Jan 14, 2019
From: SEASON SMART LIMITED
To: FARADAY&FUTURE INC.
Reel/Frame 048069/0704 →
SECURITY INTEREST Recorded Dec 28, 2017
From: FARADAY&FUTURE INC.
To: SEASON SMART LIMITED
Reel/Frame 044969/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2016
From: SLINDEE, RICHARD EDWARD; FERNANDO, JANA MAHEN
To: FARADAY&FUTURE INC.
Reel/Frame 039061/0219 →