PCの概要
琉球大学情報工学科 和田 知久
THE INDISPENSABLE PC H/W BOOK, 3rd edition, Hans-Peter Messmerの1.2.2-1.2.11
PCとは通常DOS, OS/2, Windows(NT)を使うIBMコンパチブルコンピュータを指す。
1.2.2 PCの構成(図1.5)
- メイン部品は80x86 Central
Processing Unit (CPU)。
- CPUのすぐ横にあるのが、メインメモリ
Random Access Memory (RAM)でCPUによりデータの読み書きがされ、データ処理が行われる。
- CPUとRAMがマザーボードのメインコンポーネントである。
- キーボードはCPUにつながり、データやコマンドを入力する。
- CPUはグラフィックアダプターを介してDisplayにつながる。
- 多量のデータを長期保存するために、フロッピーディスクやハードディスクドライブがある。
- プロセッサはコントローラを介してFDやHDDとデータの読み書きを行う。
- ほとんどのPCにはパラレルインターフェース(PRN,
LPT1, LPT2, LPT3)があり、プリンタと接続される。
- また、少なくとも1つのシリアルインターフェース(COM1
- COM4と呼ばれる、Communication Interfaceと呼ばれる)でモデム等とつながり、電話やネットワークを介して他のコンピュータとつながる。
- ネットワークアダプタによりPCはLocal
Area Networks (LANs)と接続される。
1.2.3 マザーボード(図1.6)
- マザーボードは名前が示すようにPCのハートである。
- 図1.6はPentium
マザーボード。
- 多数あるバススロットには、たとえばグラフィックアダプタのサーキットボードをさす。
- 図1.7はマザーボードのブロックダイアグラムであり、CPU
80x86に対して、算術コプロセッサ80x87
(FPU)がある。
- i486DX、Pentium、PentiumPRO(II)からFPUはCPUチップに内蔵され、コプロという言葉は古い言葉である。
- メインメモリ(RAM)が次に重要な部品であり、通常幾つかのバンクに分割している。
- メモリのアクセスのために、アドレスバスとデータバスがある。
- また、アクセスタイムとはCPUがメモリへREADコマンドを送ってからデータがメモリよりCPUへ転送されるまでの時間。
- キャッシュメモリとはメインメモリよりたいぶ小さく、かつ相当高速なメモリで、CPUがよく使うデータを保持し、CPUを常に働かせるようにする。
- マザーボード上にはRead Only
Memory(ROM)もあり、ROM内にPCがPower up時に必要なプログラムとデータが格納される。(メインメモリはPower
down時にデータを失うので)
- それ以外にROMにはキーボード、グラフィックスガード等へのアクセスをサポートする多数のプログラムも格納されている。(ROM-BIOS)
- キーボードでのデータ入力時に、キーボードインターフェースはインタラプトにより、直接プロセッサと通信し、入力データをプロセッサへ伝える。
- データの交換にアドレスバスとデータバスが必要であった、それ以外に読み出し・書き込みをコントロールする
write-enable-signal
が必要である。これらすべてをまとめてシステムバスと呼び、バススロットへつながる。
- 時に多量のデータをHDD/FDから転送する必要があり、データ転送に特化したチップを使用する(DMA
chip)。
- ダイレクトメモリアクセスチップ(DMAチップ)はメインメモリとHDD等の転送を行い、CPUはバイパスされ、CPUは転送命令が与えられない。
- その他に時間を知らせるタイマーチップ(timer-chip)があり、メモリのリフレッシュをサポートする。
- 主記憶は通常Dynamic RAMで構成され、リフレッシュオペレーションなしでは10ms-1sでデータを失う。
1.2.4 グラフィックアダプタとモニター
- 図1.8はVGAアダプターカードであり、グラフィックアダプタの中心はグラフィックコントロールチップである。
- 図1.9はブロックダイアグラムで、グラフィックコントロールチップはMotorola6845とかS3のチップで、Windowsのビデオ出力を高速化する。
- 機能としてはモニターを駆動して、文字や図形の表示をするとともに、水平/垂直のリトレースパルスの発生、カーソルの表示、テキスト表示行列数のコントロールをする。
- グラフィックアダプタには2つの動作モードがある。テキストモードとグラフィックスモードである。
- キャラクタ(文字)はある決まったのピクセルの集まりとして表示され、グラフィックスモードでは点を任意に表示する。
- テキストモードで文字を表示する場合、CPUは文字に対応するコードをグラフィックスコントロールチップへ送る。
- このとき、Video RAMはスクリーンに表示する文字のコードを保持する。
- Character Generatorはこのコードを対応するピクセルのパターンに変換する。
- 一方、グラフィックモードではCharacter
Generatorは不使用で、Video RAMから直接pixel情報が読み出される。
- スクリーンに表示するデータはCPUにより、Video
RAMに書き込まれる。また、CPUはVideo RAMからデータを読み出すこともある。これはバスインターフェースを介して行われる。
- MS-Windowで新ウインドウにより上書きされてしまうデータをCPUはVideo
RAMから読み出し、メインメモリに保存する。したがって、その新ウインドウを閉じた後にメインメモリの保存データをVideo
RAMに再転送することで、元の状態を再現できる。
- また、バスインターフェースによりグラフィックコントロールチップはプログラマブルであり、25行X80列のモードを60行X132列のモードに変更したりできる。
- このようなリプログラムはグラフィックアダプタのH/W構成に依存するので、ハイリゾルーション(高解像度)の(S)VGAアダプタはそれ自身のBIOSを持つ。これはROMであり、マザーボード上のROM-BIOSをサポートする。たとえば、異なるdisplay
mode間のスイッチ(最近のアダプタは80種類もの異なるモードをサポートする)、スクリーン上のある点の再描画、Video
RAMを複数のページに分けて使うなどのサポートをする。
- このとき、マザーボード上のCPUはバスインターフェースを介して、ROM-BIOS中の対応するルーチンをCALLする。
- グラフィックアダプタのバックにはジャックがあり、モニターと接続される。
1.2.5 ドライブコントローラ、フロッピー、ハードディスクドライブ
- パワーが切れると、メインメモリの中身は消失する。というわけで、早期より磁気メモリが開発され、使用されている。
- 半導体の進歩の以前は、メインメモリもマグネティックドラムで構成されていた。その後、磁気コアメモリ(小さなリング状の磁気メモリ)が使用され、現在ではフロッピーディスクとハードディスクドライブに磁気記憶が使用されている。
- フロッピーディスクドライブはリムーマブルデータボリュームの1つで、取り替えができる。構造は丸いフレキシブルな磁性材でコートされた円盤がケースに収納されたものである。
- ハードディスクドライブでは、データボリュームは取り外すことができない。また、データボリュームはフレキシブルではなく硬いものである。
- FDやHDDはPCに限らず使用されるので、PCの構成とは独立したものである。
- したがって、CPUよりデータを読み書きするためには、ドライブをコントロールする必要がある。このために、コントローラが1つのバススロットに挿入される。
- 図1.12にコントローラのブロック図を示す。コントローラとはCPUとドライブを結ぶものである。ということで、コントローラは2つのインターフェースをもつ。
- 1つはCPUとのデータ交換をするバスインターフェース。もう1つは、各フロッピードライブやハードディスクドライブとのインターフェースである。通常のPCは2つ以上のFDと2つのHDDをコントロールするcombicontrollerを備える。
- combicontrollerはそれ専用のマイクロプロセッサを持ち、ROMに蓄えられたプログラムとともに、コントロールカード上のコンポーネントをコントロールする。このマイクロプロセッサはマザーボード上の80x86CPUとは異なるものである。
- すなわち、コントローラ自体は小さな独立したコンピュータであり、マザーボード上のCPUからの命令をバスインターフェースを介して受けとる。
- 同様に、CPUはキーボードインターフェースを介してコマンドをユーザより受けとる。コントロールカード上のマイクロプロセッサはプログラムストレージコントローラとデータシンクロナイザーをうまくドライブすることで、バスインターフェースとドライブインターフェース間のデータの流れをコントロールする。
- FD、HDD側ではデータは磁気記憶に合ったフォーマットになっている。このフォーマットはPCでのデータフォーマットに合わないので、データシンクロナイザーはこのフォーマットの変換を行う。
- プログラムストレージコントローラは読み出し/書き込みをコントロールし、読み出しデータのエラーチェックを行う。
- ドライブを効率的にコントロールし、使用するために、多数のコントローラはそれ自体のROM-BIOSを持っている。
- グラフィックアダプターのROM−BIOSのように、このROM-BIOSもハードディスクコントローラをアクセスする幾つかのリーチンを持っている。
- フロッピーディスク用のルーチンはすでにマザーボード上のROM-BIOSに置かれている。(ROM-BIOSとROM
Codeは異なる。)
- ROM Code内のルーチンはコントローラ上のマイクロプロセッサをコントロールし、マザーボード上のCPUからアクセスはできない。一方、コントローラ上のROM−BIOS内のルーチンはマザーボード上のCPUをサポートする。
1.2.7 パラレルインタフェィスとプリンタ (図1.14)
- PCには少なくとも1つのパラレルインターフェースがあり、マザーボード上もしくは別個のアダプタカード上に置かれる。
- システムバスを介して、PC/XTでは1バイト、ATbusでは2バイト、(EISAバス以降)では4バイトのデータが並列にやり取りされる。
- しかし、パラレルインターフェースのバスインターフェース(図1.15)は常に1バイト幅であり、インターフェースには常に1バイトが転送される。
- インターフェースカード上のI/Oチップはこの8ビット(1バイト)を同時に受け取り、並列に8ビットデータを接続デバイス(通常プリンタ)へ送信する。このデータバイトの他に、データの到着を示すコントロール信号も同時に転送される。
- インターフェースのJackは25ピンのCentronics
Standardである。このJackをみればパラレルインターフェースと分かる。
- セントロニクススタンダードのデメリットはワイヤーの各々がシールドなしのケーブルであり、これによりPCとプリンタ間の最大長さは約5mである。
- データの受け渡しはhandshaking方式を用いており、レシーバは各バイト転送ごとに受け取りをコンファームする。まだデータと共にclock信号も転送される。
- プリンタは転送データを受け取り、対応するtextやgraphicsをプリントする。このコードは例えば、0dh,
0ahでそれぞれCarrige Return, Line Feedである。
- 通常パラレルインターフェースはデータを出すだけで、データを受け取らない。しかし、最近のチップでは受信も可能である。
1.2.8 シリアルインターフェースとモデム
- パラレルインターフェースと同様に、PCは1つ以上のシリアルインターフェースを持つ。(図1.16にダイアグラムを示す。)
- 中心的なコンポーネントはいわゆるUARTであり、古いPC/XTでは8250チップ、ATでは16450/16550チップが使用されていた。
- バスインターフェースを介して、マザーボード上のCPUはUARTにアクセスし読み出しもしくはデータの転送をする。
- パラレルインターフェースと同様にシリアルインターフェースではデータはバスインターフェースを介して、UARTへ1バイトごとに伝送される。
- しかしパラレルインターフェースとは異なり、UARTはパラレルにデータを転送しない。UARTは各バイトをビットの列に変換する。さらに、UARTは必要に応じてstart,
stop, parityビットを付加する。
- データの8ビットとUARTが付加するコントロールビットによりデータパケットが形成される。
- 1秒間の信号の変化数をbaud rateと呼ぶ。パリティビットは単純な転送データのvalidity
checkである。
- シリアルインターフェースでは、途中にバッファなしに100m程度の長距離の伝送が可能である。パラレルインターフェースとは異なり、同期信号(clk)は伝送されない。
- PCにおけるシリアルインターフェースはRS232C
standardに従っている。RS232Cスタンダードでは25ピンのJackであるが、9ピンの省略JackがIBMより決められている。
- UARTの特徴の1つは、データの伝送と受信は非同期に行われることである。したがって、データの到着時にUARTはCPUを妨げずに動作を始め、データを受信する。
- その後、プロセッサにデータの受信がありCPUへの転送のあることを伝える。
- シリアルインターフェース(communication
interface, COMとも呼ぶ)にモデムを接続すれば、電話ネットワーク等により、データの交換ができる。
- データはCPUによりUARTへ送られ、UARTはデータをビットストリームへ変換し、それをモデムへ送る。モデムではキャリア信号が変調(modulation)され、電話ネットワーク等を介して他のモデムへ伝送される。目的地のモデムでは復調(demodulation、modemという名前はMOdulation/DEModulationから)が行われ、データがシリアルのビットストリームとして、目的地のコンピュータのUARTへ送られる。そのUARTはこのビットストリームをバイトに変換して、CPUへ転送する。
1.2.9 ネットワークアダプタとLANs
- PCが高価であったときには、オフィスで共有のPCを使用していた。この時にデータは同一のPC上で共有されていたが、PCハードウエアが急激に安価になり、パワフルになり、個人がもつようになり、プリンタの共有やデータの共有が必要となってきた。
- 以上の背景により、local area networks(LANs)が盛んに使用されるようになってきた。(図1.17)
- 図1.12のコントローラのようにネットワークアダプタも2つのインターフェースを持っている。1つはPCのCPUとの接続のためのバスインターフェース。もうひとつはネットワークをアクセスするインターフェースである。(図1.18)
- 他の拡張アダプタカード(グラフィックアダプター、ディスクコントローラ)のように、ネットワークアダプタも空きのバススロットに入れることができる。
- マザーボード上のCPUはデータとコマンドを、カード上のI/Oチップもしくはバッファメモリへバスインターフェースを介して転送する。
- I/Oチップはそのデータをネットワークを介する伝送に合った形に変換する。そして、その変換データをネットワークインターフェースに送り出す。そして、ネットワークはそのデータを意図されたコンピュータ(サーバ、ネットノード)へ転送する。
- 逆に、データ転送コマンドがI/Oチップに到着した時に、そのコマンドはバッファメモリに置かれ、CPUは適当な時間にそれを知らされ、CPUは実行中のプロセス(たとえば算術計算)を中断し、要求タスクを実行し、その後、中断したプロセスを再開する。
1.2.10 CMOS RAMとリアルタイムクロック
- これまで見たように、PCには多数の変化に富んだ拡張アダプタやインターフェースがある。
- PCは電源OFF時に、そのメモリの内容を失うので、どのようなコンポーネントがインストールされているか分からなくなる。
- 初期のPCではDIP switch(図1.19)により、コンフィギュレーションを設定した。
- ATより、このコンフィギュレーションの情報はCMOS
RAM(図1.6)というマザーボード上のチップに保持されている。
- このチップは低消費電力なチップであり、電池でバックアップされている。
- CMOSチップには他の機能もある。(図1.21)それがリアルタイムクロックである。
- PCがOFFしてもこのreal-time clockは電池によりパワーが供給されており、日時の情報を保持している。コンピュータはCMOS
RAMを読み出すことで、コンフィグレーション、日時を知ることができる。
- CMOS RAMとリアルタイムクロックは1チップ化されており、MC146818もしくはそのコンパチプルICである。
- 通常、CMOS RAMは64バイトを保持し、バッテリーで2−3年動作する。
1.2.11 キーボード
- 最も重要な入力デバイスである。
- ディスクコントローラのように、keyボードも1つの小さなコンピュータであり、key
hitをビットストリームに変換することに特化している。
- キーボードのメイン部分はマイクロプロセッサ(8042
for PC/XT, 8048 for AT and MFII)であり、キーボードのscan-matrixを監視する。
- scan-matrixは複数の交差ラインで、それぞれのラインはキーボードプロセッサに接続されている。各交差点にはスイッチがあり、keyが押されると交差点のコンタクトが閉じられる。キーボードマイクロプロセッサはこの閉じられたスイッチを見つけてkey入力を認識する。
- そして、keyに対応するコードがバッファを介してマザーボード上のキーボードインターフェースに送られる。そして、CPUはkey入力を知る。
- コード(scan code)からの対応キャラクタへの変換はキーボードドライバと呼ばれるプログラムにより実行される。これにより、複数の異なるkeyボードにハードウエアの変更なしに対応できる。