プロセッサシールド

プロセッサシールドとは、米国に本社を置くコンカレント・コンピュータ(Concurrent Computer)が開発、販売するリアルタイムオペレーティングシステム(RTOS)、RedHawk Linuxに実装されている割り込みの副作用を回避する方法である。

 概要 
プロセッサシールドあるいは、CPUシールド(CPU shield)とは、SMPシステムにおいて、任意のプロセッサ(CPU)の割り込みを禁止することで、リアルタイム性を保証する方法であるShielded CPUs: Real-Time Performance in Standard Linux。

この手法は、コンカレント・コンピュータのCX-UXやのリアルタイムUNIX(RTU)等のSVR3系のリアルタイム化されたUNIXに最初に実装され、その後、同社のPowerMAX OSやSunのSolaris、SGIのREACTsgi-shield：　ハードリアルタイム対応 CPU Isolation 機能等のSVR4.2MPUNIX System V系のUNIXに実装された。The Use of POSIX in Real-time Systems, Assessing its Effectiveness and Performance

コンカレント・コンピュータは、NovellのSUSE Linux Enterprise Real Time10に対して、このシールドを含めたリアルタイム機能を提供したConcurrent Real-Time ExtensionsSUSE Linux Enterprise Real Time Users Guideが、Novellは、その後の版で、独自実装のリアルタイム拡張csetQuick Start SUSE Linux Enterprise Real Time Extension 11 SP1を提供している。

SUSEのリアルタイム対応に対抗してRed Hat and Novell duke it out in real time There's money in them thar milliseconds By Timothy Prickett Morgan 、RedHatは、RedHat MRGを開発し、この製品にもCPU shiledの機能が含まれているRHEL-RT_AffinityHowto。

この手法を適用する条件は、SMPあるいは、マルチコアであり、割り込み信号の割付を変更出来ることにある。

一般的に、割り込み信号には、システムタイマー割り込みとデバイス割り込みが存在し、前者はラウンドロビン・スケジューリングのトリガーに使用され、後者は、入出力のスケジューリングのトリガーに使用される。

リアルタイム処理を行っているプロセスあるいは、スレッドやタスクに対して、この割り込みが発生すると、ジッターと呼ばれる処理時間の変動を生じる。

また、トリガーによって起動されるべきタスクの起動時間も多重割り込みによって、応答時間の遅れやジッターが発生する。

このように、割り込みは、リアルタイム処理に必須のものでありながら、その副作用は大きなものであるため、古くからの研究テーマであった。

マルチプロセッサ（あるいはマルチコア）を利用して、割り込み処理を専用に行なうプロセッサと、リアルタイムアプリケーションを行うプロセッサを分ける事により、この割り込みの副作用を排除する手法がプロセッサシールドである。

 呼び方 
プロセッサシールド(Shielded Processors)は、製品によって呼び方が異なる。

コンカレント・コンピュータでは、モトローラ製プロセッサの場合にShielded Processorsと呼ぶが、x86系CPUの場合にはShielded CPUと呼んでいる。（コンカレント・コンピュータに買収された旧MASSCOMP社のRTUでは、Reserved Processorと呼んでいた)。

同様に、NovellとRedHatではShielded CPUと呼ぶが、SGIでは、sgi-shieldREACT Real-Time for Linux Programmers Guideと呼び、Sunでは、Reserved CPUあるいは、Reserved Processorin Real-Timeと呼んでいた。

しかし、各製品での呼称は異なっても、プロセッサ(CPU)を割り込み専用あるいは、リアルタイムアプリケーション専用に予約(Reserved)し、割り込み等の副作用から保護(Shield)する機能という点では同一のものといえる。

 実装 
SVR4.2MP系のシステムでは、UNIXの再コンフィグレーションで、割り込みを行うプロセッサ（あるいはCPU）を決定していた。（たいていはブートプロセッサが割り込みを処理する）

RedHawk Linuxあるいは、SUSE Linux Enterprise Real Timeでは、コマンド・システムコールあるいは、を変更することで、動的に割り込みを処理するプロセッサを変更することが可能である。

を変更する方法は、Linux 2.6カーネルを利用しているその他のLinux(RedHat MRG, SUSE Linux RT)等でも利用可能であるが、システムタイマーを停止する事が出来るのは、RedHawk Linuxのみである。

 関連項目 
 リアルタイムオペレーティングシステム

 脚注 

 外部リンク 
 Shielded Processors:Guaranteeing Sub-millisecond Response in Standard Linux 
 RedHawk Linux
 Concurrent Computer
 RealTime Linux:The RedHawk Approach 
 RealTime Linux: RedHawk アプローチ
 Load-Balancing for a Real-Time System Based on Asymmetric Multi-Processing

Category:リアルタイムオペレーティングシステム
Category:割り込み (コンピュータ)