2章 コンピュータシステム
2.1 コンピュータの5大機能
 コンピュータの本体は、CPUメモリ(半導体記億装置)で構成されます。メモリのうち『主記憶装置(RAM)』には、『入力装置』や『補助記憶装置』を通じてプログラムやデータが読み込まれます。読み込まれたプログラムなどは、主記憶装置内でアドレス(番地)によって管理されます。 CPUは、アドレスによって主記憶装置との間でプログラムの命令やデータをやりとりしながら処理を行い、必要に応じて処理結果を『出力装置』や『補助記憶装置』に送ります。これが、コンピュータと各装置が一体となって仕事を行うおおまかなしくみです。以下が、コンピュータの5大機能と言われている項目です。
  (1) 入力機能 プログラムやデータ等の入力
  (2) 記憶機能 プログラムやデータ等の記憶
  (3) 演算機能 四則演算や大小の比較判断を行う
  (4) 出力機能 処理結果を画面やプリンターに出力
  (5) 制御機能 プログラムの命令に従い、入力、記憶、演算および出力装置に対して制御信号を出し、それらの装置の働きをコントロールする機能

コンピュータの構成


図2.1 コンピュータの基本構成
 
ノイマン型、非ノイマン型コンピュータ

 コンピュータが発明された初期のころ、目的の計算を行わせるためには、プログラムごとに配線をつなぎかえる必要があり、別の処理を行うときは、再び配線を変更するといったぐあいで、その手間は大変なものでした。
 現在、一般に使われているコンピュータ場合は、主記憶であるRAMにプログラムとデータを読み込んで、プログラムの命令を1つずつ実行しています。この方式の利点は、プログラムを変えるだけでさまざまな処理を実行できることです。また、同じ処理を、異なるデータで実行することもできます。
 このように、いろいろなプログラムをコンピュータと言う器(主記憶)に入れて、命令を1つずつ実行する方式をプログラム記憶方式、この方式のコンピユータを『プログラム内蔵式コンピユータ』と呼びます。また、フォン・ノイマンという数学者が考え出したといわれることから、『ノイマン型コンピユータ』と呼ぶこともあります。プログラム記憶方式は、1949年、ケンブリッジ大学で開発されたEDSACというコンピユータで実現しました。
 プログラム記憶方式は、プログラムとデータさえ用意すればいろいろなことができるという汎用性から、ほとんどのコンピュータで採用されることになりました。しかし、命令を1つずつ順番に実行していくので、実行速度には限りがあり、人間のように、何かをしながら別の作業をするといったこともできません。
 いまのコンピュータで多く採用されている『タイム・シェアリング・システム(複数の利用者が同時に中央のコンピュータを利用できるシステム)』や『マルチタスク(1台のコンピュータで複数の処理を同時に実行すること)』でも、疑似的に複数の仕事を同時にこなしているように見せかけているだけで、実際は、ごく短時間で行う処理を複数の仕事に対して順番に繰り返しているにすぎないのです。
 つまり、この方式では、CPUが1つ処理を終えるまで次の処理を行うことはできず、大量データの高速処理が求められる現在では、このことが致命的な欠点になってきています。これを解決するためにはノイマン型の枠をはみ出す必要があり、このようなコンピュータを『非ノイマン型コンピュータ』と呼びます。
 非ノイマン型コンピュータは、まだ実現をみていませんが、以下のようにさまざまな方法が研究されています。
2.1.3 ニューロコンピュータ

 人間の脳などの生体をモデルにした素子を使ったり、生体の情報処理のしくみを取り入れたりしたコンピュータです。人間の場合は、並行して、見る聞く食べるなどの事ができ、真のマルチタスクです。
2.1.4 データフロ−・マシン
 命令を1つずつ実行するのではなく、必要なデータがそろった時点でいつでも実行できる方式を取り入れたコンピュ一タで、データの流れによって制御を行うので、命令はデータさえそろえばすべて同時に実行することができます。
2.1.5 並列処理コンピュータ
 複数の演算装置を同時に並行して動作させ、並列処理を可能にしたコンピュータ。一部で実用化されています。
2.2 基本ハードウェア構成
2.2.1 CPU 中央演算処理装置  Central Processing Unit
 全体をコントロールしながらデータの処理を行う、コンピュータ・システムの中心部です。 Central Processing Unitの略で、『中央処理装置』、『中央演算処理装置』などと訳されます。パソコンに使われるCPUを、ほかのコンピュータと区別して、特にMPU(Micro Processing Unit)ということもあります。
 CPUは、主記憶装置のプログラムによって動きます。プログラムに記述された命令を順に読み出して解読、実行し、データをやりとりしながらプログラムに記述されたとおりに処理を行い、結果をディスプレイに表示したり、記憶装置やプリンタなどに出力します。コンピュータ処理の全体はCPUが管理し、処理速度は主にCPUの速度 (例えば、1GHz, 800MHz等)によって決まります。
2.2.2 CPUの構成と各部の働き

 CPUは、『制御回路』、『演算回路』、『各種レジスタ』の3つの部分と、それらを結ぶ信号の通路である『バス』で構成されます。コードで扱われたデータを、もとの文字や数値に戻す『命令デコーダ』も、CPUの一部に含まれています。


図2.2 CPUの構造と命令実行の仕組み
 
2.2.3 制御回路
 バスをコントロールして主記憶装置に記憶されている命令を1つずつ順番に読み出し、命令コードと指定されたアドレスを解読します。解読した命令の内容によって、演算回路に信号を送ったり、バスを通じてデータの入出力を管理したりします。このように制御部は、CPUの中にあってCPU全体を管理する機能を持っています。
 
2.2.4 演算回路 『ALU』
レジスタに一時的に記憶されているデータに対して、演算命令(四則演算、論理演算、データの移動や比較など)を施します。 Arithmetic and Logic Unitを略して『ALU』とも呼ばれます。演算回路は、制御回路からの制御信号によって動作します。
 
2.2.5 レジスタ
 スーパーマーケットの『レジスタ(register)』と同じ単語で、命令のデータや処理の対象となるデータ、処理結果のデータなどを一時的に記憶しておく小容量の記憶装置です。主記憶装置や外部記憶装置と異なるのは、CPUの内部にあって、そのときに必要なデータをごく一時的に記憶するのみで、記憶できるデータの量もそのときに処理するのに必要なぶんだけであることです。演算部や制御部と直接データをやりとりするので、コンピュータの記憶装置としては最高の速度を持っています。レジスタには、記憶させるデータの種類によって、各種の『専用のレジスタ』と、いろいろな目的に使われる『汎用レジスタ』があります
 


図2.3 レジスタの種類とはたらき
  
2.2.6 バス
 制御回路、演算回路、レジスタを相互に結びつけている信号線のことです。データをやりとりするための信号が通る共通の通路で、CPUが一度に処理できるデータの数だけの本数が用意されます。
 このような、CPU内のバスを『内部バス』といいます。内部バスに対して、CPUと、CPUに直接つながっている主記憶装置や補助記憶装置、入出力装置、計測装置などを接続するバスを『外部バス』といいます。たんにバスといえば、内部バスと外部バスを総称したものを指します。
 バスはまた、乗せられるデータの種類によって、『データ・バス(データが乗る)』、『コントロール・バス(制御信号が乗る)』、『アドレス・バス(データのアドレスが乗る)』に分けられます。
 


図2.4 バスの種類
  
2.2.7 CPUの処理能力

 CPUの性能は、一般に『32ビット』や『16ビット』といったようにビット単位で区別されます。この数字は、CPUが一度に処理できるデータの数を表していて、数値が大きいほど高機能になります。つまり、16ビットCPUなら一度に16ビットしか処理できないのに対して、32ビットCPUなら一度に32ビットのデータが処理できるわけです。
 1ビットのデータは、1本のバスによって運ばれます。そこで、32ビットのデータを一度に処理するためには、内部バスが32本必要となります。ただ、同じ32ビットCPUでも、外部バスは16本しか用意されていない種類もあります。この場合、外部バスでデータを運ぶには、16ビットずつ2回に分けて処理することになります。このようにCPUの処理能力は、外部バスが何本であるかによっても左右されます。
 CPUの性能を表すもうひとつの単位に、『クロック周波数』があります。前にも述べたように、CPUは、命令やデータの読み込み→命令によるデータの処理→結果の出力といった一連の仕事を、順序正しく行わなければなりません。そのためには、接続されている機器とのデータのやりとりのタイミングを正確に合わせる必要があります。それを行うのが、『クロックパルス』です。クロックパルスは一定の間隔で発生する信号で、1秒間に何回発生するかという周波数をMHzという単位で表現します。クロック周波数は、同じCPUであれば高い(数値が大きい)ほど動作が速く、高性能ということになります。
 
2.3  記憶装置 メモリ

 パソコン本体に内蔵される記憶装置のうち、半導体で構成されているものをメモリと呼びます。メモリは、記憶の形態や機能によってRAMとROMに分類されます。CPUが直接アクセスできる記憶装置を『主記憶(装置)、メインメモリ』などと呼び、RAMがその役割を受け持ちます。 RAMのうち主記憶の容量を超えた、CPUが直接アクセスできない部分は、『拡張メモリ』と呼ばれて区別されます。
 
2.3.1 RAM
 Random Access Memory の略で、随時読み出し書き込み可能メモリと訳されます。記憶内容を自由に書き込んだり読み出したりできる記憶装置で、ユーザがそのとき実行しているプログラムやデータを記憶します。普通、パソコンの電源が入っているときは記憶内容を保持していますが、電源を切ると内容が失われます。パソコンの操作中に、停電などで電源が切れると処理中のデータが消えてしまうのはこのためです。
 主記憶の容量という場合はRAMの容量を指し、単に『メモリ容量』とも呼ばれます。メモリの容量によって、実行できるプログラムの大きさや扱えるデータの量が制限されます(ただし、扱えるメモリの上限はCPUによっても異なる)。
 RAMはこの他、ディスプレイに表示する画像を記憶するVRAM(ビデオRAM)、ディスク・キャッシュ(主記憶と補助記憶との間に設け、一度呼び出されたデータを一時的に記憶して、データのやりとりを高速化するメモリ)などとして利用されます。また、パソコンでは拡張メモリをEMS、RAMディスクといった形で利用し、通常では扱えない大きなプログラムを動かす方法も用意されています。
 
DRAM
 データの書き込みと読み出しが可能な半導体記憶素子であり、1ビットは1個のMOS型トランジスタとコンデンサから成り立ち、コンデンサの電荷の有無でデータの0、1を記憶します。ICの中には数十万〜数百万のコンデンサがあり、静電容量は非常に小さく、コンデンサの自然放電によって電荷が消去するため、リフレッシュが必要です。DRAMはSRAMに比し、集積度は高く、構造が単純なため大容量化に向いています。消費電力は高く、データ転送速度は遅いが、記憶容量あたりのコストは安い。主記憶に使用します。
 
SRAM
 データの書き込みと読み出しが可能な半導体記憶素子で、データをフリップフロップにより記憶し、リフレッシュの必要がなく、1ビットの記憶に6端子必要で、内部構造が複雑です。高速化、低消費電力化に適したRAMで、動作速度はバイポーラ型は高速で、MOS型は低速だが、DRAMより速いメモリです。バイポーラ型は小容量で、ビット当たりの消費電力が大で、ビット当たりの価格が高価です。MOS型は小〜中容量で、消費電力はやや大で、ビット当たり価格は中位です。
バイポーラ型はキャッシュメモリに、MOS型は主記憶に使用します。
 
バイポーラメモリ
 バイポーラトランジスタは、N型とP型の組み合わせによって、PNP型とNPN型に分けることができ、メモリセルやその周辺の回路にバイポーラトランジスタを使用したメモリをバイポーラメモリと言います。SRAM、PROM、シフトレジスタ、回路のTTL、ECLなどのロジックに使用されています。特徴は、アクセスタイムが速い、消費電力が大きい、集積度を上げることができないなどです。
 
MOSメモリ
 ユニポーラトランジスタを使用したもので、金属、酸化膜、半導体からできている構造のものをMOSトランジスタといいます。MOSメモリは、速度は遅いが、消費電力が少なく、高集積度、製造が容易、速度が遅いため、低速度ロジックに使用されます。
2.3.2 ROM
 Read only Memoryの略で、読み出し専用メモリと訳されます。その名のとおり記憶されている内容の読み出し専用で、ユーザが新たな内容を記憶させたり、記憶内容を変更したりすることはできません。 RAMとは違い、パソコンの電源を切っても記憶されている内容は消えず、そのまま保存されます。
 記憶内容は、ROMの製造段階で書き込まれます。 ROMには、電源を投入したときにコンピュータを起動するプログラムなど、決まりきった内容が記録されます。パソコンによっては、漢字の字形を記憶している漢字ROMのほか、動作設定のための独自メニューやプログラム言語であるBASICなどがROMで搭載されるケースもあります。
 特殊なROMに、EPROM(Erasable and Programmable ROM)と呼ばれるものがあります。書き込まれた内容を何度でも消して変更できるもので、専用の書き込み装置と、紫外線や電流などを利用した消去装置が使われ、内容を変更する必要があるプログラムをROMに入れる場合などに用いられます。
 ROMはこのほか、CD-ROM、ICカード、ROMカートリッジなど読み出し専用の形で、ソフトやデータを提供するために用いられています。
 
マスクROM
 ROMを生産する時点でプログラムやデータを書き込むタイプで、記憶情報のパターンを焼き付けたガラスマスクによって書き込まれているため、書き換え不能です。半導体メモリの中で最も安価に製造できます。
PROM
 ユーザがオフラインで情報を書き込め、専用のROMライターを使用して、ユーザが1回だけプログラムやデータを書き込むことができます。消去不可能型で、PROM、RPROM、EEPROMを含めた総称として、PROMということがあります。
 
EPROM
書き込んだ内容の消去や再書き込みが可能なPROMの1種で、記録内容の消去に紫外線を用いるUV-EROMのことを指し、記録内容は、パッケージの中央の石英ガラスの窓に紫外線を照射することにより消去できるが、消去には時間がかかります。データの書き込みにはROMライターを使用して、自由に書き込め、集積度は高く、透明のガラス窓に半導体が露出しています。窓付きセラミックスという。EPROMは、マザーボードや拡張カードのBIOS記録用に用いられます。
 
EEPROM

 書き込んだ内容の消去や再書き込みが可能なPROMの1種で、1バイトまたは1ブロックの消去が電気的に簡単に行え、システムの稼働中にユーティリティプログラムを使用して書き換えができるものもあります。データの書き込み回数に制限があり、数十が回〜百万回程度で、集積度は高いが、記憶容量は小さく、高価格です。ICカードなどに使用され、全ビットあるいはブロッ単位で消去する一括消去型、EEPROMは、バイト単位で書き換え可能なフル機能EEPROMに比べて価格を安くできる特徴があるります。
 
フラッシュメモリ
 電気的に内容を書き直せるタイプのPROMの一種であり、フラッシュEEPROMとも言います。
ハードデイスクより小型化でき、バックアップ電源が不要で、衝撃に強く、デジタルカメラ用のメモリカードや携帯情報端末のメモリなどに用いられ、パソコンのBIOSやターミナルアダプタのファームウエアといったソワトウェアは、アップデータが可能なようにフラッシュメモリに格納されます。
 
2.3.3 2.3.3 記憶階層

●記憶階層とは
 記憶装置は、アクセス速度が高速になるとビッ卜当たりのコストが高くなり、低速なものほど安くなります。そのため記憶装置に要求されているすべての特性を同時に満たすことは難しく、システムは高速・小容量の記憶装置と低速・大容量の記憶装置を組み合わせて配置し、速度とコストのバランスを取る必要があります。このために用途別に特性を適宜組み合わせて、階層的に分類・整理して作成したものが『記憶階層』です。三角形の上層部のものほど速度が速く、アクセス時間は短い。容量規模は上層部のものほど小さく、コスト的には高価です。
 
表2.1 記憶装置の仕様
 
  
2.3.4 アドレス

 プログラムやデータは、CPUによって主記憶に読み込まれて実行されたり、加工されたりします。 CPUは、主記憶上のプログラムやデータを、そのとき処理する分だけ読み出します。このとき、必要なプログラムやデータがどこにあるかを示すのが『アドレス』です。
 アドレスは、アドレス帳(住所録)のアドレスと同じ意味で、主記憶には0番地、1番地、2番地、……のように順に数字が振られています。普通は16進数で表現することが多く、たとえば16ビット・パソコンでは、00000〜FFFFF(10進数では0〜1048575)の番地があります。1つのアドレスには、1バイトまたは2バイト(1ワードという)のデータが記憶されています。本来は1バイトや2バイトでなくてもよいのですが、コンピュータの命令語やデータが1バイトか2バイトを単位としていることから、アドレスもこのような単位になっているのです。
 プログラムを実行する場合、主記憶の命令はアドレスで呼び出されて実行されます。必要なデータも、データそのものではなく、アドレスで指定されます。たとえば、CPU内にはプログラム・カウンタ(略してPC)と言うレジスタがあります。プログラム・カウンタには、次に実行するプログラムの命令が記憶されているアドレスが記憶されます。 CPUはプログラム・カウンタの内容にしたがって次の命令を取り出し、1つひとつ処理をしていくわけです。