eXpressDrive
At Dolphin Interconnect Solutions, we prioritize innovation to ensure cutting-edge solutions into a variety of industries where Safety Integrity Levels (SIL) is paramount, such as Automotive.
Safety and security concepts in modern technology are evolving rapidly. The more complex the solution is the more important it is to protect it from failure. The amount of complexity in modern cars calls for lower latency and throughput.
- eXpressDrive is a PCIe Software Stack for automotive use. More details on eXpressWare can be found at www.dolphinics.com/software
- Using PCIe technology in automotive provides enhancements to vehicle safety with error detection features and provides more power and latency sensitivity to support growing autonomous driving needs. PCIe® Technology Enabling Vehicle Safety in Automotive.
- Dolphin has for over 30 years developed eXpressWare, an extensive software offering for interconnecting servers, SoCs and IO-Devices for industrial and commercial use.
- Dolphin’s experience and knowledge in the PCIe Stack for eXpressWare is now available for automotive use in eXpressDrive.
Software for Automotive use
eXpressWare does not have any automotive certifications and the dynamic nature of eXpressWare is not well suited to meet the static configurations, safety, and security requirements for automotive use in Advanced Driver Assistance System (ADAS). To meet the automotive requirements, Dolphin started in 2022 to architect, design and implement a new software stack. The source code is written by the experienced eXpressWare team following the ASPICE development procedures. The solution is targeting the full range of vehicles - from small personal cars to big trucks.
ASISCI
eXpressDrive offers the ASISCI API to application programmers. ASISCI is an automotive version / modified subset of the SISCI API. The modifications are to remove functionality that conflicts with automotive safety requirements and automotive coding standards.
Feature | eXpressWare | eXpressDrive |
---|---|---|
Shared Memory API | Standard SISCI API | Automotive SISCI API(ASISCI) – reduced feature set for automotive approvals |
IP-Driver / SuperSockets | Yes | No. Maybe added in future versions. |
Device Sharing | Device Lending, SISCI | ASISCI (Automotive SISCI) |
Automatic configuration | Yes | No, Static Configuration |
Scalability | 2-60 nodes | 2-10 nodes + Customer requirements |
Topology | Direct, Star, 1-7 PCIe switches | Single switch + Customer topology |
Diagnostic | Yes – tools + API | Yes - API |
SoC support | x86, QUALCOMM, TI, Nvidia, NXP | Customer requirements |
Operating System | Linux, QNX, Windows, VxWorks | QNX, Linux, Android* |
PCIe Switch support | Microchip, Broadcom, IDT | Microchip Trident + Microchip Stamford |
ASIL Compliance | No | Yes |
Functional Safety / Security | No | Custom requirements |
Availability | Now | Available for testing using Microchip Trident. |
Additional features may be added on Customer requirements and in eXpressDrive 2.0. Please contact Dolphin for more information. *Please contact Dolphin for more information on Android support.
eXpressDrive Architecture
Today, eXpressWare is a comprehensive protocol stack which makes the use of PCI Express networks as easy as Ethernet networking. This is achieved by exploiting vendor specific non-transparent bridging functionality in a sophisticated way. The behavior of eXpressWare is highly dynamic since it can adapt to changes in the topology at run time.
In an automotive environment neither that flexibility nor the associated complexity is needed or desired. That is why Dolphin decided to re-implement the main functionality of eXpressWare in an automotive-grade software stack called eXpressDrive. Hence, these are three major driving forces behind the architecture:
- Dolphin’s experience in developing shared memory interfaces for PCI Express
- Automotive software quality requirements: ASPICE, KGAS, Functional Safety, Cyber security
- Customer-specific system architecture (SoC types, operating systems, PCI Express switch type, number of SoCs, etc.)
The picture below gives an outline of the eXpressDrive software architecture. eXpressDrive contains various components that can be included or excluded depending on customer requirements. The main concept is that all application requirements are static and the PCIe switch is pre-configured to meet the application requirements.
To support different operating systems and PCIe switches and the combinations thereof we have defined a modular software architecture consisting of a generic core talking to several abstraction components that can be included or excluded depending on customer requirements. The main concept is that all application requirements are static and the PCIe switch is pre-configured to meet the application requirements.
ASISCI
eXpressDrive offers the ASISCI API to application programmers. ASISCI is an automotive version / modified subset of the SISCI API. The modifications are to remove functionality that conflicts with automotive safety requirements and automotive coding standards. Functionality that will require significant resources to implement and offers minor benefits to application programmers will be removed / reviewed with initial customers.
ASISCI concepts
- Static configuration
- Verified and allocated at startup
- Architecture designed for Safety and Security
- Separating the different modules in the design to avoid unwanted access that can lead to accidents
- Full containment of all data paths in the modules that involves safety and security
- Simplified application interface for Automotive use
eXpressDrive main functionality
- Verify that the PCIe switch configuration is authentic and valid
- Configure and verify necessary run-time settings of the PCIe switch
- Set up and verify the required address space between local application processes and NTB mapped resources like physical memory and shared IO-device resources
- Process application requests for DMA transactions, Doorbells, Multicast, and Interrupts
- State Management
- Error detection and handling
- PCIe statistics and diagnostics
- Instance handling to support multiple concurrent, independent applications
Feature list
- Static configuration built into the driver, generated from a Yaml file
- Application Interface (ASISCI API)
- Programming interface for applications using eXpressDrive
- provided as a dynamically linked library
- eXpressDrive Driver IOCTL Interface towards the library
- Core: hardware and OS-independent functionality
- Segment management
- Configuration and instance handling
- DMA transfers
- Doorbells
- PCIe Multicast
- Error detection and handling
- State management
- OSIF - OS abstraction layer
- QNX, Linux
- PCIe switch abstraction layer for NTB and DMA functions
How to sign up
Dolphin will support you throughout the whole project life cycle.
PoC -> Prototype -> Development -> Ramp-up -> Production -> Mature -> End-of-Life
We have been working in Automotive VDA Scope projects, but also offer eXpressDrive Demo kit for non-automotive applications can benefit from the simple and static nature of eXpressDrive for Safety and security and the rich ASISCI API in
- Robotics
- Healthcare
- High availability systems
- Manufacturing
Sharing of PCIe Devices
Dolphins general Device Lending and NVMe driver technology is currently not supported with eXpressDrive, but Dolphin is collaborating with Microchip to develop new concepts for sharing of SR-IOV devices in a automotive environment. Please contact Dolphin for more information.
Availability and more information
Please contact Dolphin at sales@dolphinics.com. for more information.