The Internet of Things is turning isolated embedded systems into connected and interactive devices that increasingly require real-time performance to execute application control functions with acceptable determinism. While Windows 10 does not natively support real-time operation, third-party extensions may provide developers with the solution they need to take full advantage of Windows 10's capabilities, while meeting their application's real-time requirements.
For sure, the feature-rich Windows operating system (OS) offers myriad development tools, networking stacks, and touch-based graphical interfaces that developers and designers need for connected designs requiring man-machine interaction. Moreover, as Internet of Things (IoT) devices grow in popularity, the next-generation Windows 10 IoT Core platform is set to fill in gaps that have existed between the Windows CE and Windows Embedded software editions.
But to avoid the coherency issues of previous versions of Windows, Microsoft elected not to include real-time features in Windows 10. This is a significant drawback, particularly for designers of medical IoT systems, where real-time performance is critical to ensure fast, deterministic response times.
A set of real-time software extensions that enable deterministic response in devices running Windows 10 is therefore required, but before diving into available solutions, let's look at the Windows 10 IoT Core architecture for context.
Feature-Rich Windows 10 For IoT
The Windows 10 platform is actually a scalable family of OS products that includes the Windows 10 IoT Core, a tiny software package targeted at resource-constrained connected devices. Along with the OS itself, Windows 10 IoT Core (and the rest of the Windows 10 family) provides developers with services and APIs that work across multiple hardware platforms, including 32- and 64-bit compute architectures.
To help connect peripherals, sensors, and other IoT devices to cloud services like Microsoft Azure, Windows 10, IoT Core supports Bluetooth, Wi-Fi, Wi-Fi Direct, and the AllJoyn standard (now operating under the name IoTivity). This support is critical for interoperability amid the use of multiple protocols and OS platforms. The OS also protects connected devices from cyber threats and malicious attacks by providing security features such as secure boot and BitLocker disk encryption.
The Windows IoT Core OS will most likely eclipse Windows CE. While Windows CE offers real-time processing, it is mired in challenges originating from an incoherent relationship with standard Windows (for instance, due to user interaction and development tools specific to the Windows CE platform). With Windows 10, Microsoft made sure its new platform didn’t fall victim to the same lack of coherency and scalability, but in the process, it also stripped Windows 10 of real-time capabilities. For applications such as medical systems, where seconds matter and determinism is critical, developers need a solution.
Windows 10 IoT Core Gets Real time
So how do embedded developers turn their baseline Windows 10 into a real-time operating system (RTOS)? Enter IntervalZero and its RTX64, an add-on that brings real-time processing to Windows 10 IoT Core.
RTX6 is a self-contained real-time subsystem (RTSS) that is fully independent of the Windows kernel and bypasses the Windows scheduler to facilitate determinism and hard real-time response (Figure 1). A Windows program can therefore interact with the real-time part on two levels – kernel level and user level – via the real-time APIs provided by the RTX64 software.
RTX64 neither isolates Windows nor modifies Windows infrastructure because the hardware abstraction layer (HAL) in RTX64 is distinct from the Windows HAL (though the two HALs work side by side). That creates a single software environment capable of accommodating Windows' rich user interface smoothly alongside the real-time processes of RTX64 software.
The HAL in RTX64 can scale from 1 to 63 processor cores while delivering deterministic performance with timing down to 1 s. The high-speed scheduler, residing inside the RTSS of RTX64, employs pre-emptive and priority-driven algorithms to assign up to 997 independent processes and unlimited threads to cores using symmetric multiprocessing (SMP). This eliminates both the interaction (or interference) between Windows and the real-time threads, as well as the need for virtualization or other inter-process communication methods. It also ensures that RTX-based applications can survive Windows crashes.
RTX64 provides access to 128 GB of non-paged memory, which adds to its medical applicability as it opens the door to magnetic resonance imaging (MRI). This demands accurate rendering and processing of organ images.
Hardware Support Key To Rapid, Low-Cost Development
Given the lack of determinism in Windows environments, embedded developers often end up using two separate processing platforms: one for general data processing applications, such as HMI and network communications, and one for running an RTOS to execute control functions. Such architectures are costly and impact designs with inter-platform issues.
But this dual-platform approach can be avoided with the right supporting hardware. For example, the Intel Atom® processor E6xx series uses Intel® Hyper-Threading (HT) technology that can run two threads simultaneously: one for Windows 10 IoT Core and one for RTX64. It can make them run like two separate cores, from the OS perspective. This simplifies system design, lowers overall cost, reduces the board size, and facilitates smoother software development. The Intel Atom processor can also deliver DSP-level performance for real-time applications, with floating-point precision.
The Power of Ecosystems
Microsoft made many improvements to Windows with the introduction of Windows 10 and its Windows 10 IoT Core. But no operation system is perfect; IntervalZero and its RTX64 shows the power of ecosystems. Now real-time applications can be created around low-power Intel Atom processors and Microsoft’s Windows 10 IoT core software. One set of hardware combined with a single OS environment along with an RTOS extension simplifies design, lowers cost, and reduces time to market for IoT applications.