ページトップへ

Language: JA | EN

印象的な発明:ハードウェアOS

三谷拓也 | 2024/04/14

電子回路だけで作ったOS


弁理士は、いろいろな発明と出会う職業です。

数々の発明の中でも、特に心に残っている発明のひとつが、ハードウェアOS(電子回路だけで作ったOS)です。
ネットクリアスシステムズ株式会社(現:カーネロンシリコン株式会社)というベンチャー企業の発明です。

OS(オペレーティングシステム)とは、コンピュータを統括するソフトウェアのことです。
OSには、Windows、UNIX、Linux、iOS、Android、Tron・・・などいろいろな製品があります。
製品によって性能も特徴もさまざまですが、OSの中核機能はタスク管理機能とメモリ管理機能の2つです。


OSのメカニズムは複雑です。

ネットクリアスの丸山社長から依頼されたときには半信半疑でしたが、発明資料を読み込んでみたところ、巧妙な電子回路によってOSが確かに実現されていました。
OSを電子回路(ハードウェア)だけで作ることができるなんて考えたこともなかったので、「こんなことを思いつくなんてすごい!」と衝撃を受けました。

ネットクリアスの発明はあちこちの国で特許審査を受けましたが、どこの国でも類似技術は見つからなかったので、世界唯一の発明であることはまず間違いありません。

CPUはいろいろなことをやっている


CPUなどのプロセッサは、2種類のソフトウェアを実行しています。

1つは、アプリケーションとしてのタスクプロセス(以下、「タスク」とよぶ)です。
タスクとは、CPUにやらせたい仕事です。

もう1つがOSプロセス(以下、「OS」とよぶ)であり、複数のタスクを協調させるための交通整理のような仕事です。
OSとは、複数のタスクを実行させる上でCPUにやらせざるをえない仕事です。
 

ソフトウェアOS


下の図は、ソフトウェアOSのイメージ図です。
CPUは、複数のタスクと、1つのOSの役割を一台(一人)でこなします。
CPUは、メモリやハードディスク、GPU、通信デバイスなど他の計算資源を統括しており、これらの計算資源の使い方を決めるのもOSです。

CPUはクロックにしたがって動きます。
CPUが身体なら、クロックは心臓です。クロックアップ(クロックの高速化)すればCPUも速く動きますが、クロックアップだけでは性能向上に限界があります。
クロックアップすると消費電力も大きくなります。

一般的なソフトウェアOS方式のCPUの時間は、タスクの時間(やらせたい仕事の時間)OSの時間(やらせざるをえない仕事の時間)に分かれています。

CPUは、タスクT1、タスクT2、タスクT3、タスクT4・・・のような複数のタスクを極めて短い時間(タイムスライス)に分けて細切れに実行します。
CPUはタスクT1を少し実行したあと、OSを実行し、OSはタスクT1の次に実行すべきタスクT2を選びます。
タスクT2のあとは、OSが再び実行され、OSはタスクT4を次のタスクとして選びます。
CPUは、タスクT1→OS→タスクT2→OS→タスクT4・・・のように超高速にてプロセスを切り換えます。

もう少し具体的に言うと、OSはタスクT1を実行途中で打ち切り、中断したときの作業状態をメモリに保存し、全体効率性の観点からあらかじめ定められたルールにしたがってタスクT2を選び、タスクT2の作業状態をメモリから読み出してCPUに内蔵されるレジスタにロードした上で、タスクT2を前回の続きから実行させ・・・・という複雑な処理をしています。

このようなタスクの切り換え処理のことをコンテキストスイッチといいます。
また、複数のタスクを同時実行することをマルチタスクといいます。

CPUがあまりにも高速であるため、人間には複数のタスクがあたかも同時実行されているかのように見えます。
1つのCPUによって複数のタスクを同時実行できるので、マルチタスクは優れた仕組みです。
しかし、実際には、CPUはタスクとOSを交互に実行しており、CPUはその処理能力のかなりの部分をOSのために使っています。
特に、短い時間に複数のタスクが頻繁に切り換わるようなアプリケーションでは、CPUの仕事の大部分はOSです。

コンテキストスイッチという間接コスト(オーバーヘッド)は実はとても大きいので、CPUの作業効率は決して高くはありません。
また、コンテキストスイッチは電力を消費しますので、頻繁なコンテキストスイッチはエネルギー効率を悪くします。
会社に例えれば、社内調整ばかりで本業に集中できない状態にあると言えます。

マルチタスクには、複数のタスクを同時実行できるというメリットがありますが、頻繁なコンテキストスイッチの発生によりCPUが非効率になるというデメリットがあります。

コンテキストスイッチが高コストになるのは、ソフトウェアOSが「CPUに負担をかける処理」だからです。

ハードウェアOS


下の図は、ネットクリアスのハードウェアOSのイメージ図です。
ネットクリアス発明では、プロセッサとは別にOSとして機能する電子回路(以下、「OS回路」とよぶ)を用意します。
このOS回路がCPUを支配します。

通常のコンピュータではCPUなどのメインのプロセッサが最上位に位置し、CPUがメモリなどの他の計算資源を支配します。
これは複数のCPUを使うマルチコア方式であっても同じです。

ネットクリアス発明では、OS回路がCPUの上位にあり、CPUはOS回路の下請けに格下げとなります。

CPU至上主義からの脱却という発想こそがこの発明の凄いところだと思っています。

OS回路には、OSの中核であるタスク管理機能とメモリ管理機能が組み込まれています。
ソフトウェアを動かすときには、電子回路には大きな負担がかかります。
しかし、OS回路にはソフトウェアがありませんので軽快に動くことができます。

ネットクリアス発明では、コンテキストスイッチをわずか2クロックで実行できます。
ネットクリアス発明におけるCPUは、OS回路によって次々に指定されるタスクをひたすら実行するだけの「タスク専用回路」になります。

OS回路はマルチコアとも親和性が高く、OS回路によって複数のCPUをまとめて統括し、複数のCPUで複数のタスクを分担して実行することもできます。
現在、半導体の微細化競争が激しい理由のひとつは、微細化するほどCPU(プロセッサ)を低消費電力かつ高速にて動作させることができるからです。

CPUは、設計思想を抜本的に見直すことによって高速化することもあります。
ネットクリアスのハードウェアOSは、ソフトウェアOSに比べると格段(約100倍)に高速であり、消費電力も減ります。
コンテキストスイッチにともなう間接コストをほとんど支払わなくて済むからです。
また、ハードウェアOSはコンテキストスイッチに要する最大時間を定義(確定)できるため、厳格なリアルタイム性を求められる場面においては特に威力を発揮します。リアルタイム性の保証はソフトウェアOSでは難しく、特に、マルチコアではほぼ不可能でした。

ネットクリアス特許(特許4119945号ほか数件)は、現在はルネサスエレクトロニクス株式会社に譲渡されています。

参考:「発明の3つの才能」「一気に眺める「ソフトウェア」