The increasing reliance on software
Software has been playing a prominent role in vehicle for many years now, as a large majority of the functions of a vehicle are mostly implemented in software, amounting to millions of lines of code interacting with a wide range of sensors such as radars, lidars and cameras. Some of next generation’s Electronic Control Units (ECUs) will be equipped with powerful System-on-Chips (SOCs), each containing several multicore processors with specific capabilities (e.g., lock-step execution for safety-critical code, low-power execution, etc). Larger ECUs routinely support hypervisors hosting Virtual Machines (VM) running OSes of different types (e.g., real-time, infotainment or general-purpose OS). Besides VMs, software containers are also technologies that start being considered for use in the automotive domain to ease software update.
Software-defined runtime execution platforms
In that landscape, a new trend is that runtime execution platforms increasingly rely on software, allowing for more modularity and providing a lot of flexibility in terms of configuration, or re-configuration after new functions have been deployed. For instance, software components executing in the VMs may communicate through software-implemented (“virtual”) network interfaces connected to a virtual Ethernet switch, i.e. software replacing the actual HW. More generally, what has been observed over the last decade is that the complexity is migrating from the hardware (in the past, vehicles sometimes had 50+ ECUs, most running a few functions) to the software (today E/E architectures tend to rely on a lesser number of powerful ECUs, with complex internal software architectures). This era of increasing reliance on software in the automotive domain is referred to as Software-Defined-Vehicle (SDV), an enabler for the progressive transition to a more service-centric business model for all stakeholders of the industry.
Technologies for Software-Defined-Vehicle
Many technologies that can help make SDV a reality already exist: service-oriented architecture (SOA), service-oriented communication (SOME/IP, DDS), Autosar Classic and Adaptive OS, hypervisors, software containers, schedulers that guarantee the execution behavior of containers made up of several threads, virtual Ethernet switches, TCP/IP, Time-Sensitive-Networking (TSN) standards, Software Defined Networking (SDN), etc. Those are the technologies which are likely to be considered for use by automotive OEMs and Tier1s first, as it typically still takes several years to bring a technology to the maturity level required for production cars.
Challenges of Software-Designed-Vehicle
If SDV holds many promises, it requires us to rethink the existing design, development and verification approaches:
- SDV may require more software-centric design and development methodologies.
- Additional run-time mechanisms implemented in software layers may be needed to complement current standards and technologies.
- Configuration and Design-Space-Exploration (DSE) algorithms need to be extended to support SDV.
- Performance evaluation in the automotive domain is typically conducted with worst-case scheduling analysis (“schedulability analysis”) at the level of a processor or at system level (considering “timing chains” over different processors and networks). Are the existing techniques, such as system-level compositional analysis, able to cope with the complexity of next-generation execution platforms? If not, what would be the techniques that could allow verifying that non-functional concerns like timing and safety are met? Can simulation, supported by a sound methodology, be the single early-stage verification technique?