Renesas Electronics has developed a virtualization technology for its V850 32-bit RISC CPU core architecture which provides simultaneous multithreading that allocates CPU time and system resources for independent processes in a control system, reducing process interference and facilitating high-speed performance of diverse tasks.
The virtualization technology enables increased software configuration flexibility for single-core MCUs, particularly in large-scale control systems performing composite processing, and enables smoother integration and distribution of functions for more efficient software development.
The hardware-based virtualization technology allows independent parallel execution of multiple control systems on a single CPU.
The technology includes a hardware scheduler which supports parallel execution of multiple real-time control tasks via the simultaneous multithreading (SMT) technology. It allows each thread, or unit of software execution, to have dedicated program context resources needed for execution, such as general registers and system control registers. Execution can be switched among the running threads every clock cycle.
Thread switching is handled automatically by a hardware scheduler, ensuring that each thread is allocated the portion of CPU time assigned beforehand by the software developer. Thus, the CPU is alleviated from performing time-management and program-switching overhead functions. Regular execution is maintained and multiple real-time control systems can run in parallel with performance, meeting requirements specified by the developer.
Hardware has been developed that extends the management of address space and interrupt handling, making it possible for a single CPU to present itself to the software as multiple, virtual CPUs. An address-conversion function provides appropriate separation of memory, preventing the overlap of logical addresses among virtual CPUs or misallocation of memory resources. Interrupt priority is managed independently for each virtual CPU.
Each virtual CPU may be assigned either single or multiple hardware thread resources. With a simple operating system (OS), such as a real-time OS (RTOS), a single thread can be assigned to each virtual CPU. For large-scale operating systems with support for multithreading, multiple threads can be assigned to a single virtual CPU.
The bus system included minimizes interference between threads accessing memory or peripheral units and maintains regular input/output (I/O) access by the various threads, thereby providing the capability for I/O virtualization in control systems.
The combination of these features makes it possible to use a single CPU as multiple virtual CPUs, each running a different OS or supporting independent control systems in parallel. The new technology also can solve software overhead problems related to time management that can occur when separating or integrating control systems, and developing large-scale control systems.
More flexibility is provided regarding the number of virtual CPUs and the combination of frequency performance levels in a virtual multi-core configuration. This versatility enables system designers to account for board characteristics such as mounting location and area.
Renesas Electronics plans to implement the virtualization technology in its next-generation V850 CPUs to raise the level of CPU architecture scalability and enable more flexible development of systems.