Cloud native EDA tools & pre-optimized hardware platforms
In-depth technical articles, white papers, videos, webinars, product announcements and more.
In recent years, virtualization has become an indispensable feature in modern System on Chips (SoCs). This paradigm shift is driven by the need to optimize hardware resources, enhance software development processes, and ensure robust system verification. Virtualization allows multiple applications to run on a single hardware platform by creating isolated environments. This article delves into the intricacies of virtualization in processor development, its benefits, and various case studies that highlight its practical applications.
Virtualization is crucial for modern SoCs due to the complexity and variety of software functions they implement. For instance, advanced driver-assistance systems (ADAS) may include various functions, such as parking assistance, which are developed by different engineering teams.
Virtualization helps in managing the spatial and temporal interference between these applications, ensuring they can coexist without performance degradation. This is achieved by creating isolated environments where each application can run independently, utilizing a partition of the hardware resources.
A hypervisor is the software layer that enables virtualization by creating and managing these isolated environments. It ensures that each application can use a partition of the hardware resources without interfering with others. This not only simplifies the development stage but also significantly improves verification processes.
Each application can be verified in an isolated environment, ensuring that the final product meets all requirements without the need to test the applications altogether. Hypervisors play a crucial role in maintaining the integrity and performance of virtualized systems.
The automotive industry is increasingly adopting zonal architectures to replace traditional Electronic Control Units (ECUs). This shift is driven by the need to reduce the complexity and cost associated with cabling harnesses. In a zonal architecture, high-speed buses connect zonal control units (ZCUs) that act as gateways and hubs for endpoint devices. This architecture simplifies the assembly process and reduces the overall weight and cost of the vehicle.
For SoC development, this means integrating both real-time and performance domains. The challenge lies in merging these domains while ensuring that applications with varying levels of importance or urgency can operate together without issue.
Virtualization allows the definition of programming models for application domains, enabling the sharing of accelerators and ensuring that real-time domains have the necessary access to these accelerators. This ensures that critical applications can run with the required performance and reliability.
Figure 1: Partitioning and isolation in automotive
In the consumer electronics market, devices like network storage and smart panels benefit significantly from virtualization. These devices are built on powerful SoCs that can support additional third-party applications to enhance functionality. However, this requires a robust programming model to avoid interference between applications.
Virtualization can be implemented by running virtual machines on a hypervisor or using containers that share the same operating system. This approach ensures that third-party applications can run smoothly without affecting the core functionalities of the device.
By isolating third-party applications, manufacturers can ensure that their devices remain secure and stable while offering enhanced functionality to users. This approach also allows for easier updates and maintenance, as each application can be managed independently.
Figure 2: Virtualization for extensibility in consumer electronics
In manufacturing, sometimes parts of an integrated circuit (IC) may be non-functional. Virtualization can help in reusing these partially good chips by creating different software flavors for fully functional and partially functional ICs. This approach increases production yield and provides a consistent strategy for implementing degradation.
By marking malfunctioning parts and integrating software that can adapt to these changes, virtualization ensures that safety-critical domains always have access to the full set of resources, while less critical domains can operate with reduced resources. This strategy not only improves yield but also reduces waste, making the manufacturing process more sustainable.
Figure 3: Virtualization helps increase chip production yield
The application processor domain is designed to run feature-rich operating systems like Linux and Android. The main requirements here are to support existing software stacks without modification and to allow flexible memory partitioning. This ensures that the cost of porting software is minimized and that memory resources are efficiently utilized.
Hardware features supporting this domain include additional privilege levels for hypervisors, two-stage translation tables for flexible memory allocation, and virtualized interrupt controllers to manage physical interrupts within guest operating systems. These features ensure that the application processor domain can run multiple operating systems and applications concurrently without interference.
The real-time domain focuses on minimizing latency and ensuring time determinism. This domain requires spatial isolation, flexible memory allocation, and low-latency physical interrupt forwarding. The virtualized processor’s architecture supports these requirements through proprietary extensions, additional privilege levels, and advanced interrupt architectures.
The real-time domain is critical for applications that require precise timing and low latency, such as automotive control systems and industrial automation. By ensuring that these applications can run in isolated environments, virtualization helps maintain their performance and reliability.
Accelerators like Neural Processing Units (NPUs) and Digital Signal Processors (DSPs), such as 草榴社区 ARC? NPX NPU IP and 草榴社区 ARC VPX DSP Processors, present unique challenges. These accelerators need to be shared between domains executing functions of different criticalities. Virtualization allows for both spatial and temporal partitioning of accelerators, ensuring that resources can be allocated efficiently based on the needs of different applications.
Memory isolation is achieved through internal Memory Management Units (MMUs), and external system-level MMUs configure Direct Memory Access (DMA) operations to address specific processes. This ensures that data can be processed with minimal latency and without unnecessary copying. By enabling the efficient use of accelerators, virtualization enhances the performance of SoCs in applications like AI and machine learning.
Virtualization is a game-changer in the world of modern SoCs and high-performance processor IP, such as 草榴社区 ARC-V ? Processor IP and 草榴社区 ARC Processor IP Subsystems, offering a robust solution to optimize hardware resources, enhance software development, and ensure system verification. By creating isolated environments, virtualization enables the coexistence of multiple applications, each with its own set of requirements. The case studies in automotive, consumer electronics, and partial IC reuse highlight the practical benefits of virtualization. As the technology continues to evolve, it promises to bring even more efficiencies and capabilities to processor development.
In summary, the adoption of virtualization in SoC design is not just a trend but a necessity. It addresses the complexities of modern processor requirements, ensuring that hardware resources are used efficiently and that applications run smoothly without interference. As we move forward, the role of virtualization will only become more critical in shaping the future of processor technology.
Includes in-depth technical articles, white papers, videos, upcoming webinars, product announcements and more.
草榴社区’ processor IP solutions are based on a portfolio of processors, subsystems, software, development systems and tools.