はじめに
前回の続きで、システムアーキテクチャについてみて行きます。
今回の内容
システムのブート
今回から何回かに分けて、PCの電源をONにしてから私たちが利用できるようになるまでの流れを見ていきましょう。
起動の流れ①:BIOS
PCの電源をONにすると、まずこのBIOS (Basic Input/Output System)が起動されます。BIOSはマザーボードのメモリ内に記録されています。
PCは最初からOSを導入しているわけではありません。(販売されているPCについては、OSがプリインストールされているものが殆どですが。)
では、OSを導入する前にPCの電源をONにすると何が起動するのか、というとこのBIOSです。OSが導入されていない場合、または起動中に特定のキーを押下することでBIOSのメニューが表示されます。
BIOSメニューで設定できる主な項目として、
(ⅰ)デバイスへのIRQ割り当て
(ⅱ)起動ドライブの順序
(ⅲ)日付や時刻の設定
(ⅳ)電源管理の設定
などが挙げられます。
ここでは、試験項目として特に重要なIRQについて説明していきたいと思います。
IRQとは?
IRQとはInterrupts Requestsの頭文字をとったものです。キーボードやマウスといったデバイスと密接な関係があります。
PCは内部で様々な処理を行わなければなりません。基本的にひとつの処理が終わるまで他の入力が受け付けられないようになっていますが、キーボードやマウスに関しては、処理中でも使用できないと不便ですよね。
そこで、キーボードやマウスからの入力は割り込み処理として優先的に処理されるようになっています。具体的には、キーボードからの入力が行われると1という番号がCPUに渡されます。すると、現状の処理を一時中断して、キーボード入力の処理を優先します。処理が終わると、中断中の処理に戻ります。
この仕組みがあることで、CPUリソースの有効利用ができるというわけです。
以下はIRQ一覧です。
0 |
システムタイマ |
1 |
キーボードコントローラ |
2 |
カスケード接続用 |
3 |
シリアルポート2 |
4 |
シリアルポート1 |
5 |
パラレルポート2 |
6 |
フロッピーディスクコントローラ |
7 |
LPT1(パラレルポート) |
8 |
リアルタイムクロック |
9 |
カスケード用 |
10 |
空き |
11 |
空き |
12 |
PS/2マウス |
13 |
数値データプロセッサ |
14 |
プライマリIDEコントローラ |
15 |
セカンダリIDEコントローラ |
IRQ割り当て情報は、/proc/interruptsを参照することにより確認ができます。
I/Oポートアドレスとは?
IRQと関連性が高いものとして、I/Oポートアドレスがあります。
CPUが周辺機器とデータの送受信を行う出入り口のことをI/Oポートといいます。
周辺機器ひとつひとつに対して、このデータの出入り口が用意されています。そして、このポートに割り当てられているのがI/Oポートアドレスです。
これらを用いることにより、CPUと周辺機器とが正常にデータのやりとりをすることができます。
I/Oポートの情報は、/proc/ioportsを参照することで確認ができます。
DMAとは?
これまでの流れで、CPUが周辺機器からの要求を受け取って処理を行っていることはお分かり頂けたかと思います。しかしながら、全ての周辺機器がCPUとのやりとりをしなければならないと考えると、CPUのタスクは膨大な量になってしまうことは想像できるでしょう。
そこで、CPUを介することなしにメモリとメモリ、またはメモリとI/Oデバイスとが直接やりとりする仕組みがあります。それがこのDMAです。(※メモリに関しては第3回参照。)
DMAがあることにより、CPUの負担を軽減することが可能です。DMA転送方式としてはSATAなどが挙げられます。
DMA割り当て情報は、/proc/dmaを参照することで確認ができます。
今回はここまで。次回もまだまだアーキテクチャの続きです。