System and method for reducing start-up latency in system for operating operating system of motor vehicle
By determining the amount of volatile memory used and terminating background applications before the system goes into hibernation, the delay problem during automotive operating system restarts was solved, achieving the effect of fast application loading.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-28
- Publication Date
- 2026-03-31
AI Technical Summary
Existing technology causes startup delays when the car operating system restarts because volatile memory is fully occupied, affecting the driver's user experience.
Before the system enters hibernation mode, the memory controller determines whether the usage of volatile memory exceeds the threshold, terminates background applications and clears related data, and only saves snapshots of foreground applications to non-volatile memory to ensure that volatile memory is not fully occupied when restarting.
This reduces system restart latency, ensuring drivers can quickly load applications after restarting, thus improving the user experience.
Smart Images

Figure CN121773399A_ABST
Abstract
Description
[0001] Related technical descriptions
[0002] Computing devices and their components can experience operational failures, which may lead to undesirable results. One of the key foundations of an autonomous driving system is its ability to continue operating when an electrical / electronic (E / E) fault or other software fault has been detected by an Advanced Driver Assistance System (ADAS) or Autonomous Driving System (ADS) (hereinafter referred to as ADAS / ADS system).
[0003] The Electronic Control Unit (ECU) is the core of the ADAS / ADS system and integrates a vast amount of information about the surrounding environment from various sensors, such as stereo cameras, optical sensors, navigation and other sensors, to perform complex and computationally intensive problems that are crucial for ensuring system availability while continuously detecting and managing faults during mission modes.
[0004] ADAS / ADS systems typically run the vehicle's operating system (Auto OS), which acts as an infotainment platform. Drivers can download compatible applications that they use while operating the vehicle to this platform. Drivers can then manage these applications using the vehicle's graphical user interface (GUI). Summary of the Invention
[0005] Systems, methods, and other examples for reducing latency when restarting systems running Auto OS are disclosed.
[0006] Exemplary implementations of this method include: Before performing the suspend-to-hard disk (S2D) process, determine whether the amount of storage space currently in use by the system's volatile memory devices exceeds a pre-selected threshold (TH) value; If the amount of storage space currently used by the system's volatile memory device exceeds a pre-selected TH value, one or more computer programs stored in the volatile memory device are selected for termination, the selected one or more computer programs are terminated, and the selected one or more computer programs and the data associated with the selected one or more computer programs are cleared from the volatile memory device; and The S2D process is performed after the selected one or more computer programs and the data associated with the selected one or more computer programs are deleted from the volatile memory device.
[0007] An exemplary embodiment of the system includes a memory controller, which comprises: A logic unit configured to determine whether the amount of memory currently in use of the system's volatile memory devices exceeds a pre-selected TH value before executing the S2D process; A logical component configured to select one or more computer programs stored in the volatile memory device for termination when the amount of storage space currently in use of the system's volatile memory device exceeds a pre-selected TH value. A logical component configured to terminate one or more selected computer programs and remove the selected one or more computer programs and data associated with the selected one or more computer programs from a volatile memory device; and A logic component configured to perform an S2D process after deleting one or more selected computer programs and data associated with the one or more selected computer programs from a volatile memory device.
[0008] An exemplary embodiment of a computer program for reducing latency when restarting a system running Auto OS is embodied on a non-transitory computer-readable medium and includes: A first set of computer instructions for determining whether the amount of memory currently in use of the system's volatile memory devices exceeds a pre-selected TH value before executing the S2D process; A second set of computer instructions for terminating one or more computer programs stored in a volatile memory device when the amount of storage space currently in use in the system's volatile memory device exceeds a pre-selected TH value. A third set of computer instructions for terminating one or more selected computer programs and deleting the one or more selected computer programs and data associated with the one or more selected computer programs from volatile memory devices; and A fourth set of computer instructions for performing an S2D process after deleting one or more selected computer programs and data associated with the selected one or more computer programs from a volatile memory device.
[0009] Another exemplary implementation of the system that reduces latency when restarting a system running Auto OS includes: A component used to determine whether the amount of memory currently in use by the system's volatile memory devices exceeds a pre-selected TH value before performing the S2D process; A component for terminating one or more computer programs stored in a volatile memory device when the amount of storage space currently in use in the system's volatile memory device exceeds a pre-selected TH value. Components for terminating one or more selected computer programs and for deleting the one or more selected computer programs and data associated with the one or more selected computer programs from a volatile memory device; and A component for performing the S2D process after deleting one or more selected computer programs and the data associated with the one or more selected computer programs from a volatile memory device.
[0010] These and other features and advantages will become apparent from the following description, drawings and claims. Attached Figure Description
[0011] In the accompanying drawings, unless otherwise indicated, similar reference numerals are used throughout the various views to refer to similar parts.
[0012] Figure 1 A block diagram of a system is illustrated, which may be, for example, an ADAS / ADS system of a mobile vehicle (e.g., a car) or a component of that ADAS / ADS system, such as, for example, an ECU.
[0013] Figure 2 A flowchart illustrating a method based on a representative implementation scheme is provided.
[0014] Figure 3 It is used in the case of Figure 1 The flowchart shown illustrates the method for restoring a snapshot to volatile memory after the system controller initiates and exits the S2D process.
[0015] Figure 4 This is a flowchart illustrating a method based on a representative implementation scheme, wherein... Figure 2 The processes indicated by boxes 202 and 203 are triggered when one or more current conditions indicating that the vehicle ignition may soon shut down are detected, thereby causing the initiation of the S2D process to begin.
[0016] Figure 5 Examples of PCDs, such as mobile phones, smartphones, portable game consoles (such as extended reality (XR) devices, virtual reality (VR) devices, augmented reality (AR) devices, or mixed reality (MR) devices), etc., are illustrated, including exemplary embodiments of systems, methods, computer-readable media, and other examples in which the inventive principles and concepts of this disclosure may be implemented.
[0017] Figure 6 It is a graphic image of a vehicle, in which execution Figures 2 to 4 Any of the methods shown or combinations thereof Figure 1 or Figure 5 The system shown is incorporated into the ADAS / ADS system used in vehicles. Detailed Implementation
[0018] Currently, when the driver turns off the vehicle, the motion control unit (MCU) of the ADAS / ADS system senses this condition and puts the ADAS / ADS system into sleep mode. In this sleep mode, the Auto OS runs a suspend-to-hard disk (S2D) process. The S2D process takes a snapshot of volatile memory, that is, a snapshot of the state of the computer instructions and data currently occupying volatile memory. The volatile memory device can be, for example, double data rate synchronous dynamic random access memory (DDRSRAM). The S2D process stores the snapshot in persistent or non-volatile memory. When the driver restarts the vehicle, the AutoOS restarts the system and copies the snapshot stored in non-volatile memory to volatile memory, making the state of volatile memory exactly the same as when the driver turned off the vehicle. This process allows applications that were running when the vehicle was turned off to be available to the driver when the vehicle is restarted, without the driver having to restart the applications.
[0019] If the volatile memory (hereinafter referred to as RAM) is fully occupied by software processes and associated data when a snapshot of RAM is taken and stored in non-volatile memory, the snapshot copied from persistent memory to RAM on the next startup may cause the driver to experience sluggish behavior from the system when trying to load a new application because RAM has been fully occupied.
[0020] The system and method disclosed herein overcome this problem. When or just before the system controller initiates the S2D process, the system controller causes the memory controller to determine the currently occupied percentage of volatile memory and compare that percentage with a predetermined threshold (TH) percentage. If the occupied percentage exceeds the predetermined TH percentage, the memory controller marks the running application as a background or foreground application, terminates the background application, clears any instructions and data associated with the terminated background application from the volatile memory, takes a snapshot of the volatile memory's state after the terminated background application and associated data have been cleared, and saves the snapshot to a designated storage location in non-volatile memory before entering hibernation mode.
[0021] In the following detailed description, exemplary or representative embodiments of the specific details disclosed are set forth for purposes of explanation and not limitation, in order to provide a thorough understanding of embodiments according to this teaching. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” The words “illustrative” or “representative” are used herein synonymously with “exemplary.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects. However, it will be apparent to those skilled in the art, who benefit from this disclosure, that other embodiments of the present teaching that depart from the specific details disclosed herein remain within the scope of the appended claims. Furthermore, descriptions of well-known apparatuses and methods may be omitted so as not to obscure the description of exemplary embodiments. Such methods and apparatus are clearly within the scope of this teaching.
[0022] The terminology used herein is for the purpose of describing particular implementations only and is not intended to be limiting. The defined terms are supplementary to their technical and scientific meanings as generally understood and accepted in the technical field of this teaching content.
[0023] Unless the context clearly indicates otherwise, the terms “a,” “an,” and “the” as used in the specification and appended claims include both singular and plural references. Thus, for example, “an apparatus” includes one apparatus and multiple apparatuses.
[0024] Relative terms are used to describe the relationships between individual elements, as illustrated in the accompanying drawings. In addition to the orientations depicted in the drawings, these relative terms are intended to cover different orientations of the equipment and / or elements.
[0025] It should be understood that when an element is described as being "connected to," "coupled to," or "electrically coupled to" another element, the element may be directly connected or coupled, or there may be intermediate elements present.
[0026] The term "memory device" (as used herein) is intended to refer to a non-transitory, computer-readable storage medium capable of storing computer instructions or computer code that can be executed by one or more processors. References to "memory device" herein should be interpreted as including one or more memory devices.
[0027] The term "processor" (as used herein) covers an electronic component capable of executing computer programs or computer instructions. References to a computer including "processor" herein should be interpreted as one or more processors. A processor may, for example, be a multi-core processor comprising multiple processing cores, each of which may include multiple processing stages in a processing pipeline. A processor may also refer to a collection of processors within a single system or distributed across multiple systems.
[0028] The term "controller" (as used herein) covers electronic components implemented in hardware, software, and / or firmware that are capable of performing operations to control one or more processors, other controllers, or system components. References to "controller" herein should be interpreted as one or more controllers. A controller can be, for example, a processor, as defined herein.
[0029] Figure 1 A block diagram of system 100 is illustrated. This system may be, for example, an ADAS / ADS system for a mobile vehicle (e.g., an automobile) or a component of that ADAS / ADS system, such as, for example, an ECU. System controller 110 of system 100 runs Auto OS 101, such as, for example, a version of Android Auto OS; however, the principles and concepts of the invention are not limited to the type of OS running on system controller 110. System controller 110 also runs firmware 102 and / or software computer programs 103 for controlling the operation of system 100, including the operation of the APSS controller 120 of the application processor subsystem (APSS) 130 of system 100, and the operation of the memory management unit 140 of system 100.
[0030] The system controller 110 may be, for example, an MCU of an ADAS / ADS system, in which case, when the driver of the vehicle turns the ignition off and on, the Auto OS 101 running on the MCU 110 accordingly performs the aforementioned operations that cause the system 100 to enter and exit the aforementioned S2D process.
[0031] APSS 130 typically includes an APSS controller 120 and one or more processors 131, which can be configured to execute software applications 132, such as infotainment applications, navigation applications, radio applications, telephone applications, music applications, news applications, social media applications, etc.
[0032] System 100 may include a display interface 135 that communicates with display device 136. Display interface 135 is typically part of system 100. Display device 136 may be part of system 100, or it may be external to system 100. Display device 136 may be operated by a driver via a mouse, or it may be a touchscreen panel or touchscreen monitor that allows the driver to input commands to system 100 by touching icons displayed on display device 136. System 100 may display information on display device 136 via display interface 135. System 100 typically also includes one or more voice input devices and corresponding interfaces (not shown) for allowing the driver to interact with system 100 using voice commands.
[0033] When application 132 is initiated by the driver of the vehicle, application 132 is loaded from non-volatile memory 105 into RAM 106. Data associated with application 132 is also loaded into RAM 106. The data may include information that application 132 processes to perform its functions. For example, if navigation application 132 is loaded into RAM 106, GPS data and accelerometer data obtained from GPS and accelerometer sensors, respectively, may be fused together by sensor fusion circuitry (not shown) of the ADAS / ADS system and loaded into RAM 106 for processing by navigation application 132.
[0034] In the current prior art, when the system controller (e.g., MCU) detects that the driver has turned off the vehicle ignition, the system controller initiates the S2D process. The current prior art process involves taking a snapshot of the RAM when the system controller initiates the S2D process. Taking a snapshot of the RAM means creating a copy of the current state of the RAM, which the system controller then stores in a designated memory location in non-volatile memory and enters a sleep mode.
[0035] However, as indicated above, if RAM is fully occupied by software processes and associated data while a snapshot of RAM is being taken and stored in non-volatile memory, the snapshot copied from non-volatile memory to RAM on the next startup may cause the driver to experience lag from the system when attempting to load a new application because RAM is already fully occupied. According to this representative embodiment, when system controller 110 initiates an S2D process, or before system controller 110 initiates an S2D process, system controller 110 causes memory management unit 140 to determine, via memory controller 150, the currently occupied percentage of RAM 106 and compares this occupied percentage with a predetermined threshold (TH) percentage. For example, the TH percentage may be pre-configured based on original equipment manufacturer (OEM) requirements and vary with firmware.
[0036] If the occupancy percentage of RAM 106 does not exceed a predetermined TH percentage, the memory management unit 140 causes the execution of the aforementioned prior art process, namely, the memory controller 150 (1) obtains a snapshot of the current state of RAM 106, (2) saves the snapshot to a specified storage location in non-volatile memory 105, and (3) notifies the system controller 110 that it can put the system 100 into hibernation mode.
[0037] However, if the occupancy percentage exceeds a predetermined TH percentage, the memory controller 150 causes the following processes to be performed: (1) marking the running application 132 as background application 132 and foreground application 132; (2) terminating background application 132; (3) clearing any instructions and data associated with the terminated background application 132 from RAM 106; (4) taking a snapshot of the current state of RAM 106 after the terminated background application 132 and associated data have been cleared from RAM 106; (5) saving the snapshot to a designated storage location in non-volatile memory 105; and (6) entering hibernation mode.
[0038] The execution process (1)-(6) ensures that when the ignition is restarted, the startup of system 100 will not cause the driver to experience lag from system 100 when trying to load new application 132, because RAM 106 will not be fully occupied during restart.
[0039] The term "foreground application" (as used herein) generally refers to an operation or process that runs in the foreground and may require direct user input, as well as an operation or process essential to Auto OS 101. These operations or processes are being actively used by the user, take precedence over other tasks, receive input / feedback from the user, or are essential to Auto OS 101. The term "background application" (as used herein) generally refers to a process or application that was previously in the foreground but is later moved to the background after execution. It should be noted that the meanings of the terms "foreground application" and "background application" may vary depending on how System 100 is implemented and / or based on the priorities that System 100 is designed to have.
[0040] For example, a driver interacts with a messaging app or music app that has a visible interface for drafting messages or selecting songs from a playlist, respectively. During the interaction, the app is in the foreground, but is then moved to the background as a message is delivered or the requested song is played, respectively.
[0041] As described above, application 132, which is marked as background application 132, is terminated and cleared from RAM 106 during processes (2) and (3) above, while application 132, which is marked as foreground application 132, is not terminated or cleared from RAM 106 during processes (2) and (3). It should be noted that it is not necessary to mark both background application 132 and foreground application 132, but only background application 132 or foreground application 132. It should be noted that the term "marked" (as used herein) means anything that allows memory controller 150 to distinguish between background application 132 and foreground application 132.
[0042] Figure 2A flowchart illustrating method 200 according to a representative embodiment is shown. System controller 110 initiates an S2D process entry, as indicated in box 201. As indicated above, this may occur when system controller 110 is notified by Auto OS 101 that ignition has been turned off. When system controller 110 initiates an S2D process entry, or just before system controller 110 initiates an S2D process entry, system controller 110 causes memory management unit 140 to determine, via memory controller 150, the currently occupied percentage of volatile memory 106, as indicated in box 202. The occupied percentage is then compared with a predetermined TH percentage, and it is determined whether the current percentage of volatile memory occupied exceeds the predetermined TH percentage, as indicated in box 203. As indicated above, the TH percentage may be pre-configured and preferably may vary with firmware.
[0043] If the occupancy percentage exceeds a predetermined TH percentage, the memory controller 150 marks application 132 as either a background application 132 or a foreground application 132, as indicated in box 204. The marked background application 132 is then terminated, and any instructions and data associated with the terminated background application 132 are cleared from volatile memory 106, as indicated in box 205. A snapshot of the current state of volatile memory 106 is then taken and saved at a designated location in non-volatile memory 105, as indicated in box 206. The system 100 then enters hibernation mode, as indicated in box 207.
[0044] If it is determined at box 203 that the current occupancy percentage of volatile memory 106 does not exceed a predetermined TH percentage, then memory controller 150 takes a snapshot of the current state of volatile memory 106 and saves the snapshot to a specified storage location in non-volatile memory 105, as indicated in box 206. Then, system 100 enters hibernation mode, as indicated in box 207.
[0045] When the memory controller 150 takes a "snapshot," this involves making a copy of the state of RAM 106 at all memory addresses of RAM 106. Furthermore, taking a snapshot involves address mapping. The memory controller 150 tracks the addresses of all bits stored in RAM 106 by mapping the physical addresses of RAM 106 to corresponding addresses in a designated memory space of the non-volatile memory 105 where the snapshot is being stored. This mapping information is then used to accurately restore the state of RAM 106 during the wake-up process of system 100, which brings system 100 out of hibernation mode.
[0046] As a result of system 100 executing method 200, upon entering a hibernation state, a quality snapshot of RAM 106 is saved in non-volatile memory 105, which allows for a rapid recovery of system 100's previous state upon resuming normal active operation. Therefore, the user will not experience any or as much lag in system 100's user space, such as delays in opening or using applications when starting the engine.
[0047] Figure 3 This is a flowchart of a method 300 for restoring a snapshot to volatile memory 106 after an exit from an S2D process initiated by system controller 110. Box 301 indicates the process by which the Auto OS notifies system controller 110 that it is time to initiate an exit from the S2D process due to the vehicle's ignition being turned on, causing system 100 to exit hibernation mode, as indicated by box 302. System controller 110 causes memory controller 150 to read the snapshot from non-volatile memory 105, as indicated by box 303, and determines whether the snapshot contains any corruption, as indicated by box 304. If so, memory controller 150 preferably loads the volatile memory factory image into volatile memory 106, as indicated by box 305. The reboot process then continues, as indicated by box 307.
[0048] If the memory controller 150 determines at step 304 that the snapshot read from the non-volatile memory 105 does not contain any corruption, the snapshot is saved in the volatile memory 106 at the address included in the aforementioned memory mapping, as indicated in box 306. The restart process then continues, as indicated in box 307.
[0049] Refer again Figure 2 When the S2D process is initiated, method 200 is triggered or invoked. Figure 2 At least some of the processes represented in the flowchart can be executed before the initiation of S2D. To further reduce latency when restoring RAM 106 to its previous state and to further improve performance, the processes represented by boxes 202 and 203 can be executed before the S2D process begins, as will now be referred to... Figure 4 Described.
[0050] Figure 4 This is a flowchart representing method 400 according to a representative implementation, wherein the process represented by boxes 202 and 203 is triggered when one or more current conditions indicating that the vehicle ignition may soon be shut off are detected, thereby causing system controller 110 to initiate S2D process entry. Figure 4 Boxes 402 and 403 correspond to respectively Figure 2 Boxes 202 and 203. Boxes 405-408 correspond to... Figure 2 Boxes 203-206.
[0051] The conditions that trigger the execution of the process represented by boxes 402 and 403 may be, for example, the vehicle approaching a destination set by the vehicle driver in the vehicle's navigation system. Box 401 represents the process by which the system controller 110 determines whether current conditions indicate that the S2D process will soon be initiated. For example, the time TH value may be pre-selected or pre-configured in the system controller 110 for this purpose and periodically compared with the estimated time of arrival (ETA) generated by the navigation system.
[0052] When system controller 110 determines that ETA is less than the time TH value, system controller 110 causes memory controller 150 to determine the percentage of currently occupied volatile memory at the step indicated by box 402, and to determine at the step indicated by box 403 whether the occupied percentage exceeds a predetermined TH percentage. If so, the process proceeds to box 404 and waits until system controller 110 determines that the S2D process has been initiated. If the process indicated by box 401 is answered negatively, the process indicated by box 401 may be repeated after a predetermined time delay, which will typically be shorter than the predetermined time TH value. The time delay is... Figure 4 The middle part is represented by box 411.
[0053] When it is determined at box 404 that the S2D procedure has been initiated, the procedure proceeds to box 405, and then executes the procedures represented by boxes 405-408, which have been referred to above. Figure 2 The description is provided in boxes 203-206.
[0054] If it is determined at box 403 that the occupancy percentage does not exceed a predetermined TH percentage, the process can proceed to box 409, where it is determined whether the S2D process entry has been initiated. If not, the process in box 409 can be repeated until it is determined that the S2D process entry has been initiated. Once it is determined at box 409 that the S2D process entry has been initiated, the process proceeds to box 407 and executes the procedures in boxes 407 and 408.
[0055] As an alternative to proceeding from the process in box 403 to box 409 when the process in box 403 is answered negatively, the process may proceed from box 403 to box 411 before returning to the process represented by box 401. In the latter case, the process represented by box 409 may be eliminated.
[0056] Other current conditions that may be used at box 401 include, for example, the distance of the vehicle from the destination set in the system's navigation. For example, the TH distance might be 0.5 kilometers (km), in which case the process indicated by box 402 can be initiated when the system controller 110 determines at box 401 that the vehicle's current position is within 0.5 km of the destination.
[0057] Other current conditions that can be used at box 401 include, for example, the speed of the vehicle, especially if the user has not yet set a destination in the vehicle's navigation system. For example, if the vehicle's speed is below 10 km / h, this could be an indication that the driver is likely to stop the vehicle and turn off the ignition, unless the vehicle is in a high-traffic area where traffic congestion is common. In this example, the conditions could include (1) the low speed of the vehicle below TH speed, and (2) the location of the vehicle, both of which can be determined from the navigation system. If the vehicle's speed is below TH speed and the vehicle is in a high-traffic area or on an interstate highway, which we can detect using the GPS sensors of the navigation system, then the driver is unlikely to turn off the vehicle's ignition anytime soon. Under these current conditions, the procedure in box 401 will be answered negatively.
[0058] However, if the vehicle's speed is below TH speed and the vehicle is, for example, in a grocery store parking lot, this is an indication that the driver will likely stop the vehicle and turn off the ignition soon. Under these current conditions, the process in box 401 will be answered affirmatively, and process 400 will proceed to box 402.
[0059] The conditions mentioned above are merely a few examples of current conditions that can be considered at box 401. The navigation system can also be configured to remember locations frequently visited by the vehicle driver, such as the driver's home, the driver's office, restaurants the driver frequents, etc. Therefore, a large amount of data exists that can be used as conditions in box 401 for the system controller 110. Furthermore, with the proliferation of artificial intelligence (AI) and machine learning, a vast amount of available data and algorithms exist for processing data obtained from vehicle sensors to determine with a high degree of certainty when the vehicle ignition is about to shut off and when the S2D process is about to initiate. Therefore, as those skilled in the art will understand from the description provided herein, the inventive principles and concepts of this disclosure are not limited to the types of conditions that can be used at box 401.
[0060] Figure 5Examples of PCD 500 are illustrated, such as mobile phones, smartphones, portable game consoles (such as extended reality (XR) devices, virtual reality (VR) devices, augmented reality (AR) devices, or mixed reality (MR) devices), etc., in which exemplary embodiments of systems, methods, computer-readable media, and other examples of systems, methods, and computer-readable media that can implement the inventive principles and concepts of this disclosure are shown. According to this representative embodiment, PCD 500 includes SoC 502, which includes... Figure 1 The system 100 is shown. For clarity, Figure 5 Some interconnects, signals, etc. are not shown.
[0061] SoC 502 may include CPU 504, NPU 505, GPU 506, DSP 507, analog signal processor 508, modem / transceiver subsystem 554, or other processors. CPU 504 may include one or more CPU cores, such as first CPU core 5041, second CPU core 5042, and so on up to the Mth CPU core 504. M .
[0062] Display controller 509 and touchscreen controller 512 may be coupled to CPU 504. A touchscreen display 514 external to SoC 502 may be coupled to display controller 510 and touchscreen controller 512. PCD 500 may also include a video decoder 516 coupled to CPU 504. A video amplifier 518 may be coupled to video decoder 516 and touchscreen display 514. A video port 520 may be coupled to video amplifier 518. A universal serial bus (“USB”) controller 522 may also be coupled to CPU 504, and a USB port 524 may be coupled to USB controller 522. A user identity module (“SIM”) card 526 may also be coupled to CPU 504.
[0063] The memory management unit 140 may include one or more memories and may be coupled to the CPU 504. The one or more memories may include both volatile and non-volatile memories, such as those referenced above. Figure 1 The examples of volatile memory include static random access memory (“SRAM”) and dynamic random access memory (“DRAM”). Such memory may be external to the SoC 502 or internal to the SoC 502. One or more memories may include local cache memory or system-level cache memory.
[0064] A stereo audio codec 534 may be coupled to an analog signal processor 508. Additionally, an audio amplifier 536 may be coupled to the stereo audio codec 534. A first stereo speaker 538 and a second stereo speaker 540 may be coupled to the audio amplifier 536, respectively. Furthermore, a microphone amplifier 542 may be coupled to the stereo audio codec 534, and a microphone 544 may be coupled to the microphone amplifier 542. A frequency modulation (“FM”) radio tuner 546 may be coupled to the stereo audio codec 534. An FM antenna 548 may be coupled to the FM radio tuner 546. Additionally, a stereo headset 550 may be coupled to the stereo audio codec 534. Other devices that may be coupled to the CPU 504 include one or more digital (e.g., CCD or CMOS) cameras 552.
[0065] The modem / transceiver subsystem 554 can be coupled to the analog signal processor 508 and the CPU 504. An RF switch 556 can be coupled to the modem / transceiver 554 and the RF antenna 558. Additionally, a keypad 560 and a mono headset 562 with a microphone can be coupled to the analog signal processor 508. The SoC 502 may have one or more internal or on-chip thermal sensors 570. A power supply 574 and a power management IC (PMIC) 576 can power the SoC 502.
[0066] Firmware or software may be stored in any of the aforementioned memories, such as the memory of memory management unit 140, or may be stored in local memory that can be directly accessed by processor hardware on which the software or firmware can be executed. The processor (such as, for example, CPU 504, GPU 506, NPU 505, or DSP 507) can execute... Figure 1 The operation of the system controller 110 is illustrated. Such firmware or software, executed by the APSS controller 120, memory management unit 140, CPU 504, GPU 506, NPU 505, and / or DSP 507, can control aspects of any of the methods described above or configure aspects of any of the systems described above. Any such memory or other non-transitory storage medium having firmware or software stored therein in a computer-readable form for execution by processor hardware can be an example of a "computer-readable medium," as understood in the patent dictionary.
[0067] Figure 6 This is an illustrative image of car 600, in which execution... Figure 2 , Figure 3 and Figure 4 The methods 200, 300, or 400, or combinations thereof, are shown respectively. Figure 1 and Figure 5Systems 100 or 500, respectively, are incorporated as part of the ADAS / ADS system of vehicle 600 to reduce latency when restarting systems 100 or 500 after the ignition of vehicle 600 has been turned on. As indicated above, restarting systems 100 or 500 will not cause the driver to experience lag from systems 100 or 500 when attempting to load new applications, because methods 200-400 ensure that RAM 106 will not be fully occupied during restart.
[0068] Specific implementation examples are described in the following numbered clauses: 1. A method for reducing latency when restarting a system running Auto OS, said system being embedded in a mobile vehicle, said method comprising: Before performing the S2D process, it is determined whether the amount of storage space currently in use by the system's volatile memory device exceeds a pre-selected TH value; If the amount of storage space currently in use by the volatile memory device of the system exceeds the pre-selected TH value, one or more computer programs stored in the volatile memory device are selected for termination, the selected one or more computer programs are terminated, and the selected one or more computer programs and the data associated with the selected one or more computer programs are cleared from the volatile memory device; and The S2D process is performed after the selected one or more computer programs and the data associated with the selected one or more computer programs are deleted from the volatile memory device.
[0069] 2. The method according to Clause 1, wherein the S2D process comprises: Capture a snapshot of the state of the volatile memory device; and The captured state of the volatile memory device is stored in a designated storage space of the non-volatile memory device of the system.
[0070] 3. The method according to any one of Clauses 1 to 2, wherein the step of determining whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value is performed at the initiation of the S2D process.
[0071] 4. The method according to any one of clauses 1 to 2, wherein the step of determining whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value is performed before initiating the S2D process, and wherein the method further comprises: Determine whether one or more conditions indicate that an S2D process will be initiated within a short period of time, and if so, perform the step of determining whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value.
[0072] 5. The method according to Clause 4, wherein the one or more conditions include at least a first condition indicating that the ignition of the mobile vehicle may soon be shut off.
[0073] 6. The method according to Clause 5, wherein the at least first condition is satisfied when it is determined that the mobile vehicle is likely to arrive at the target destination within a time period less than the pre-selected TH time period.
[0074] 7. The method according to Clause 5, wherein the at least first condition is satisfied when it is determined that the speed of the moving vehicle is less than the pre-selected TH speed.
[0075] 8. The method according to Clause 7, wherein the at least first condition includes a second condition, which is satisfied when it is determined that the mobile vehicle is at a location that is likely the target destination of the mobile vehicle.
[0076] 9. The method according to any one of Clauses 1 to 8, wherein the step of selecting one or more computer programs stored in the volatile memory device for termination comprises: marking the computer programs stored in the volatile memory device as background computer programs or foreground computer programs, and wherein the step of terminating the selected one or more computer programs comprises: terminating the computer programs marked as background computer programs.
[0077] 10. The method according to Clause 9, wherein the foreground computer program is a computer program that performs at least one of: (1) an operation or process actively used by a user of the system, (2) an operation or process that takes precedence over other tasks being performed by the system, (3) an operation or process that requires input from the user, and (4) an operation or process essential to the Auto OS, and wherein the background computer program is a computer program that was previously in the foreground computer program and becomes a background computer program after the execution of the corresponding foreground computer program.
[0078] 11. A system for reducing latency when restarting a system running Auto OS, the system being embedded in a mobile vehicle, the system comprising: The memory controller includes: A logic component configured to determine whether the amount of memory currently in use by the system's volatile memory device exceeds a pre-selected TH value before executing the S2D process; A logic component configured to select one or more computer programs stored in the volatile memory device for termination when the amount of storage space currently in use of the volatile memory device in the system exceeds the pre-selected TH value. A logical component configured to terminate one or more selected computer programs and delete the selected one or more computer programs and data associated with the selected one or more computer programs from the volatile memory device; and A logic component configured to perform the S2D process after deleting one or more selected computer programs and data associated with the one or more selected computer programs from the volatile memory device.
[0079] 12. The system according to Clause 11, wherein the logical component configured to perform the S2D process comprises: A logic component configured to capture a snapshot of the state of the volatile memory device; and A logic component configured to store the captured state of the volatile memory device in a designated storage space of the system's non-volatile memory device.
[0080] 13. The system according to any one of clauses 11 to 12, wherein the logic component configured to determine whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value is activated upon initiation of the S2D process.
[0081] 14. The system according to Clause 12, wherein the logic component configured to determine whether the amount of memory space currently in use by the volatile memory device exceeds the pre-selected TH value is activated prior to initiation of the S2D process, and includes: A logic component configured to determine whether one or more conditions indicate that an S2D process will be initiated within a short period of time, and to activate, if so, a logic component configured to determine whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value.
[0082] 15. The system according to Clause 14, wherein said one or more conditions include at least a first condition indicating that the ignition of the mobile vehicle may soon be shut off.
[0083] 16. The system according to Clause 15, wherein the at least first condition is met when it is determined that the mobile vehicle is likely to arrive at the target destination within a time period less than a pre-selected TH time period.
[0084] 17. The system according to Clause 15, wherein the at least first condition is satisfied when it is determined that the speed of the mobile vehicle is less than a pre-selected TH speed.
[0085] 18. The system according to Clause 17, wherein the at least first condition includes a second condition, which is satisfied when it is determined that the mobile vehicle is at a location that is likely the target destination of the mobile vehicle.
[0086] 19. The system according to any one of clauses 11 to 18, wherein the logic component configured to select one or more computer programs stored in the volatile memory device for termination comprises: A logical component configured to mark a computer program stored in the volatile memory device as a background computer program or a foreground computer program, and wherein the logical component configured to terminate one or more selected computer programs includes a logical component configured to terminate the computer program marked as a background computer program.
[0087] 20. The system according to Clause 19, wherein the foreground computer program is a computer program that performs at least one of: (1) an operation or process actively used by a user of the system, (2) an operation or process that takes precedence over other tasks being performed by the system, (3) an operation or process that requires input from the user, and (4) an operation or process essential to the Auto OS, and wherein the background computer program is a computer program that was previously in the foreground computer program and becomes a background computer program after the execution of the corresponding foreground computer program.
[0088] 21. A computer program for reducing latency when restarting a system running an automotive operating system (Auto OS), the system being embedded in a mobile vehicle, the computer program being embodied on a non-transitory computer-readable medium and including instructions for execution by a processor or controller, the computer program comprising: A first set of computer instructions for determining whether the amount of storage space currently in use by the system's volatile memory device exceeds a pre-selected TH value before executing the S2D process; A second set of computer instructions for terminating one or more computer programs stored in the volatile memory device when the amount of storage space currently in use of the volatile memory device in the system exceeds the pre-selected TH value. A third set of computer instructions for terminating one or more selected computer programs and deleting the selected one or more computer programs and data associated with the selected one or more computer programs from the volatile memory device; and A fourth set of computer instructions for executing the S2D process after deleting one or more selected computer programs and data associated with the selected one or more computer programs from the volatile memory device.
[0089] 22. The computer program according to Clause 21, wherein the fourth computer instruction set comprises: Computer instructions for capturing snapshots of the state of the volatile memory device; and Computer instructions for storing the captured state of the volatile memory device in a designated storage space of the system's non-volatile memory device.
[0090] 23. The computer program according to any one of clauses 21 to 22, wherein the first computer instruction set is executed upon initiation of the S2D process.
[0091] 24. A computer program according to any one of clauses 21 to 22, wherein the first set of computer instructions is executed prior to the initiation of the S2D process, and comprises: Computer instructions for determining whether one or more conditions indicate that an S2D process will be initiated within a short period of time, and, if so, for executing computer instructions that determine whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value.
[0092] 25. The computer program pursuant to Clause 24, wherein the one or more conditions include at least a first condition indicating that the ignition of the mobile vehicle may soon be shut off.
[0093] 26. The computer program pursuant to Clause 25, wherein the at least first condition is satisfied when it is determined that the mobile vehicle is likely to arrive at the target destination within a time period less than a pre-selected TH time period.
[0094] 27. The computer program according to Clause 25, wherein the at least first condition is satisfied when it is determined that the speed of the moving vehicle is less than a pre-selected TH speed.
[0095] 28. The computer program according to Clause 27, wherein the at least first condition includes a second condition, which is satisfied when it is determined that the mobile vehicle is at a location that is likely the target destination of the mobile vehicle.
[0096] 29. The computer program according to any one of clauses 21 to 28, wherein the second set of computer instructions for selecting one or more computer programs stored in the volatile memory device for termination comprises: Computer instructions for selecting a computer program stored in the volatile memory device that has been marked as a background computer program, and wherein the third set of computer instructions terminates the computer program marked as a background computer program, wherein the foreground computer program is a computer program that performs at least one of the following: (1) an operation or process actively used by a user of the system, (2) an operation or process that takes precedence over other tasks being performed by the system, (3) an operation or process that requires input from the user, and (4) an operation or process that is essential to the Auto OS, and wherein the background computer program is a computer program that was previously in the foreground computer program and becomes a background computer program after the execution of the corresponding foreground computer program.
[0097] 30. A system for reducing latency when restarting a system running Auto OS, the system being embedded in a mobile vehicle, the system comprising: A component used to determine whether the amount of storage space currently in use by the system's volatile memory device exceeds a pre-selected TH value before performing the S2D process; A component for terminating one or more computer programs stored in the volatile memory device when the amount of storage space currently in use by the volatile memory device in the system exceeds the pre-selected TH value. Components for terminating one or more selected computer programs and for deleting the one or more selected computer programs and data associated with the one or more selected computer programs from the volatile memory device; and A component for performing the S2D process after deleting one or more selected computer programs and data associated with the selected one or more computer programs from the volatile memory device.
[0098] In view of this disclosure, alternative embodiments will become apparent to those skilled in the art to which this invention pertains. Therefore, although alternative aspects have been illustrated and described in detail, it should be understood that various substitutions and changes may be made therein.
Claims
1. A method for reducing latency when restarting a system running an automotive operating system (Auto OS), said system being embedded in a mobile vehicle, the method comprising: Before performing the suspend-to-hard disk (S2D) process, it is determined whether the amount of storage space currently in use by the system's volatile memory device exceeds a pre-selected threshold (TH) value; If the amount of storage space currently in use by the volatile memory device of the system exceeds the pre-selected TH value, one or more computer programs stored in the volatile memory device are selected for termination, the selected one or more computer programs are terminated, and the selected one or more computer programs and the data associated with the selected one or more computer programs are cleared from the volatile memory device. as well as The S2D process is performed after the selected one or more computer programs and the data associated with the selected one or more computer programs are deleted from the volatile memory device.
2. The method according to claim 1, wherein the S2D process comprises: Capture a snapshot of the state of the volatile memory device; as well as The captured state of the volatile memory device is stored in a designated storage space of the non-volatile memory device of the system.
3. The method of claim 2, wherein the step of determining whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value is performed at the initiation of the S2D process.
4. The method of claim 2, wherein the step of determining whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value is performed before initiating the S2D process, and wherein the method further comprises: Determine whether one or more conditions indicate that an S2D process will be initiated within a short period of time, and if so, perform the step of determining whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value.
5. The method of claim 4, wherein the one or more conditions include at least a first condition indicating that the ignition of the mobile vehicle may soon be shut off.
6. The method of claim 5, wherein the at least first condition is satisfied when it is determined that the mobile vehicle is likely to arrive at the target destination within a time period less than the pre-selected TH time period.
7. The method of claim 5, wherein the at least first condition is satisfied when it is determined that the speed of the mobile vehicle is less than a pre-selected TH speed.
8. The method of claim 7, wherein the at least first condition includes a second condition, which is satisfied when it is determined that the mobile vehicle is at a location that is likely the target destination of the mobile vehicle.
9. The method of claim 1, wherein the step of selecting one or more computer programs stored in the volatile memory device for termination comprises: The step of marking a computer program stored in the volatile memory device as a background computer program or a foreground computer program, and wherein terminating one or more selected computer programs includes: terminating the computer program marked as a background computer program.
10. The method of claim 9, wherein the foreground computer program is a computer program that performs at least one of: (1) an operation or process actively used by a user of the system, (2) an operation or process that takes precedence over other tasks being performed by the system, (3) an operation or process that requires input from the user, and (4) an operation or process essential to the Auto OS, and wherein the background computer program is a computer program that was previously in the foreground computer program and becomes a background computer program after the execution of the corresponding foreground computer program.
11. A system for reducing latency when restarting a system running an automotive operating system (Auto OS), the system being embedded in a mobile vehicle, the system comprising: The memory controller includes: A logic component configured to determine whether the amount of storage space currently in use by the system's volatile memory device exceeds a pre-selected threshold (TH) value before performing the suspend-to-disk (S2D) process; A logic component configured to select one or more computer programs stored in the volatile memory device for termination when the amount of storage space currently in use of the volatile memory device in the system exceeds the pre-selected TH value. A logical component configured to terminate one or more selected computer programs and delete the selected one or more computer programs and data associated with the selected one or more computer programs from the volatile memory device; and A logic component configured to perform the S2D process after deleting one or more selected computer programs and data associated with the one or more selected computer programs from the volatile memory device.
12. The system of claim 11, wherein the logic component configured to perform the S2D process comprises: A logic component configured to capture a snapshot of the state of the volatile memory device; and A logic component configured to store the captured state of the volatile memory device in a designated storage space of the system's non-volatile memory device.
13. The system of claim 12, wherein the logic component configured to determine whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value is activated upon initiation of the S2D process.
14. The system of claim 12, wherein the logic component configured to determine whether the amount of memory space currently in use by the volatile memory device exceeds the pre-selected TH value is activated prior to initiation of the S2D process, and includes: A logic component configured to determine whether one or more conditions indicate that an S2D process will be initiated within a short period of time, and to activate, if so, a logic component configured to determine whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value.
15. The system of claim 14, wherein the one or more conditions include at least a first condition indicating that the ignition of the mobile vehicle may soon be shut off.
16. The system of claim 15, wherein the at least first condition is satisfied when it is determined that the mobile vehicle is likely to arrive at the target destination within a time period less than a pre-selected TH time period.
17. The system of claim 15, wherein the at least first condition is satisfied when it is determined that the speed of the mobile vehicle is less than a pre-selected TH speed.
18. The system of claim 17, wherein the at least first condition includes a second condition, which is satisfied when it is determined that the mobile vehicle is at a location that is likely the target destination of the mobile vehicle.
19. The system of claim 11, wherein the logic component configured to select one or more computer programs stored in the volatile memory device for termination comprises: A logical component configured to mark a computer program stored in the volatile memory device as a background computer program or a foreground computer program, and wherein the logical component configured to terminate one or more selected computer programs includes a logical component configured to terminate the computer program marked as a background computer program.
20. The system of claim 19, wherein the foreground computer program is a computer program that performs at least one of the following: (1) an operation or process actively used by a user of the system, (2) an operation or process that takes precedence over other tasks being performed by the system, (3) an operation or process that requires input from the user, and (4) an operation or process essential to the Auto OS, and wherein the background computer program is a computer program that was previously in the foreground computer program and becomes a background computer program after the execution of the corresponding foreground computer program.
21. A computer program for reducing latency when restarting a system running an automotive operating system (Auto OS), the system being embedded in a mobile vehicle, the computer program being embodied on a non-transitory computer-readable medium and including instructions for execution by a processor or controller, the computer program comprising: A first set of computer instructions for determining whether the amount of storage space currently in use by the system's volatile memory device exceeds a pre-selected threshold (TH) value before performing the suspend-to-hard disk (S2D) process; A second set of computer instructions for terminating one or more computer programs stored in the volatile memory device when the amount of storage space currently in use of the volatile memory device in the system exceeds the pre-selected TH value. A third set of computer instructions for terminating one or more selected computer programs and deleting the one or more selected computer programs and the data associated with the one or more selected computer programs from the volatile memory device; as well as A fourth set of computer instructions for executing the S2D process after deleting one or more selected computer programs and data associated with the selected one or more computer programs from the volatile memory device.
22. The computer program of claim 21, wherein the fourth computer instruction set comprises: Computer instructions for capturing a snapshot of the state of the volatile memory device; and Computer instructions for storing the captured state of the volatile memory device in a designated storage space of the system's non-volatile memory device.
23. The computer program of claim 22, wherein the first computer instruction set is executed upon initiation of the S2D process.
24. The computer program of claim 22, wherein the first set of computer instructions is executed prior to the initiation of the S2D process, and comprises: Computer instructions for determining whether one or more conditions indicate that an S2D process will be initiated within a short period of time, and, if so, for executing computer instructions that determine whether the amount of storage space currently in use by the volatile memory device exceeds the pre-selected TH value.
25. The computer program of claim 24, wherein the one or more conditions include at least a first condition indicating that the ignition of the mobile vehicle may soon be shut off.
26. The computer program of claim 25, wherein the at least first condition is satisfied when it is determined that the mobile vehicle is likely to arrive at the target destination within a time period less than a pre-selected TH time period.
27. The computer program of claim 25, wherein the at least first condition is satisfied when it is determined that the speed of the mobile vehicle is less than a pre-selected TH speed.
28. The computer program of claim 27, wherein the at least first condition includes a second condition, which is satisfied when it is determined that the mobile vehicle is at a location that is likely the target destination of the mobile vehicle.
29. The computer program of claim 21, wherein the second set of computer instructions for selecting one or more computer programs stored in the volatile memory device for termination comprises: Computer instructions for selecting a computer program stored in the volatile memory device that has been marked as a background computer program, and wherein the third set of computer instructions terminates the computer program marked as a background computer program, wherein the foreground computer program is a computer program that performs at least one of the following: (1) an operation or process actively used by a user of the system, (2) an operation or process that takes precedence over other tasks being performed by the system, (3) an operation or process that requires input from the user, and (4) an operation or process that is essential to the Auto OS, and wherein the background computer program is a computer program that was previously in the foreground computer program and becomes a background computer program after the execution of the corresponding foreground computer program.
30. A system for reducing latency when restarting a system running an automotive operating system (Auto OS), the system being embedded in a mobile vehicle, the system comprising: Components used to determine whether the amount of storage space currently in use by the system's volatile memory device exceeds a pre-selected threshold (TH) value before performing the suspend-to-hard disk (S2D) process; A component for terminating one or more computer programs stored in the volatile memory device when the amount of storage space currently in use by the volatile memory device in the system exceeds the pre-selected TH value. Components for terminating one or more selected computer programs and for deleting the one or more selected computer programs and data associated with the one or more selected computer programs from the volatile memory device; and A component for performing the S2D process after deleting one or more selected computer programs and data associated with the selected one or more computer programs from the volatile memory device.