Skip to the content.
この記事にはこんなことが書かれています。
- 一旦立ち返ってOSとはなにか?から考えよう
- マイコン、SoC、CPUの話

■一度立ち返って

自分の頭の中で何となくわかっているつもりでも、具体的に説明しようとするとうまく説明できない。
下回りを勉強しようとしたけど、OSとか、マイコン、SoCいろんな単語がちゃんと説明できるようになりたい。
情報を整理して、以下にまとめてみました。


■OS:オペレーティングシステム

「基本ソフトウェア」。Word Excelなどのアプリケーションソフトを応用ソフトウェアと呼ぶのに対し、アプリやデバイスを動作させるための基本となるソフトウェアのこと。OSの例として以下の例のように様々あります。

- Windows
- Mac
- Linux
- Android
- iOS


役割は以下のとおり

- H/W管理:
 マウス・キーボード・スピーカー等を管理・制御する。
 デバイスドライバを使って多種多様なデバイスの入出力が可能になる
- マルチタスク・プロセス管理:
  処理工程の順序や、コアの割当などマネジメントの役割を担う
- メモリ管理:
 プログラムされた指示の要求に応じて、メモリの一部をその要求分提供
 競合しないようにし、かつ不要となった時リリースしする役割を担う
- ファイルの管理:
 データに素早くアクセスできるようにする、資源の有効活用、暗号化を実現する
- APIの提供:
 画面表示、入出力、ファイル保存、印刷 のような共通して利用される基本機能を  APIで提供する



■リアルタイムOSと情報系OS

上記Winなどは情報系OSまたは汎用OSと言われ、デスクワークや開発用に使われる。
一方で、要求される時間内に処理が実行できるシステムを構築するためのOSをリアルタイムOS(RTOS)という。組み込み機器向けのOSによく使われます。

新人時代に会社の会議で「アールトスがうんたらかんたら」と話していて、「アールトスってなんですか?」と聞いたことがあった。今思うとちょっと恥ずかしかったなぁ。リアルタイムOSって言ってくれればいいのに…と思った記憶。
それはさておき、前回の記事で書いた自作OSはリアルタイムOSです。



■リアルタイムOSの特徴

- 処理(タスク)に優先度が付けられること
- 優先度の高いタスクは、より優先度の低い処理タスクには邪魔されないこと
- 優先度の高いタスクは、低い優先度のタスクの実行権を横取りできること


上記特徴をそなえることによる利点は以下のとおり

- マルチタスク機能による複数機能の並列実行が可能になる
- 保守性・拡張性向上(機能モジュール単位で保守・管理し、アプリ部分の開発に集中できる)→大規模開発に向く
- プログラムの再利用性が高くなる(リアルタイムOSの移植部分のみ(H/Wに依存する部分のみを移植すればよい))



■リアルタイムOSの基礎知識・動向

よく聞くμITRONは、RTOSの仕様の一つ。 トロン協会が仕様を定めており、API仕様はオープンになっている。
その他用語説明は以下の通り。

- LSI:大規模集積回路(Large Scale Integrated circuit)。半導体集積回路=ICの中で素子数が1000以上のものを指す←一般論
- RISCマイコン:縮小命令セットコンピュータ(Reduce Instruction Set Computer)
 CPU内部に単純な命令しか持たないかわりに、それらをハードウェアのみで実装して、一つ一つの命令を高速に処理できる。
 ワイヤードロジック(物理的に結線された論理回路)によって全ての命令をハードウェア的に実装
 ※組み込み系はRISCが主流。PC以外はこっちと考えて良い
 ※Arm社のRISCがトップシェアでAndroid, iPhoneにも採用されている
 
- CISCマイコン:複雑命令セットコンピュータ(Complex Instruction Set Computer)
 CPUに高機能な命令を持たせることによって、一つの命令で複雑な処理を実現
 マイクロプログラムを内部に記憶させることで、高機能な命令が実現できる反面、命令の実行速度は遅くなる
 ※PCはCISCが主流。ただしMacは2020年からRISCを採用し始めた
 ※IntelはCISCと考えてよい

ルネサスマイコンが有名だが、上記Armとの関係性はどうなのだろうか?ちょっと調べてみた。

- ルネサスは日立製作所と三菱電機のマイコン部門が統合され、その後NECエレクトロニクスが統合された企業
- ルネサス独自コアのRXファミリが開発されたが、並行してArmコアを取り入れるRenesas Synergyを進め、RAファミリとして、Arm Cortex-M搭載の新32ビットマイコンを開発

■参考にしたHP

こういう記事は非常にありがたい。。ほんとこれからも何回も確認すると思う。

世の中には2種類のCPUがある。 CISCとRISCだ。

値渡しと参照渡しの説明

SoCとは

MCUとMPUの違い

DMA(Direct Memory Access)とは

組み込みシステムにおけるリアルタイムOSとLinuxの選択についての考え方


Mainページに戻る