ハードウェア(コンピュータの構造)
- コンピュータは,基本的に,記憶装置,中央処理装置,及び,入出力装置から構成されています.以下,各装置について順に説明していきます.
- 中央処理装置
- 中央処理装置( CPU : Central Processing Unit )は,演算装置と制御装置から構成され,主記憶装置(次節参照)に記憶されている命令を順番に読み込み,実行していきます.命令は,以下に示すようなサイクルで実行されていきます.
- PC( Program Counter,プログラムカウンタ)に,最初に実行する命令のアドレス( address )を設定します.アドレスは,記憶装置上の位置を示す値(番地)であり,記憶装置の最初からバイト単位で 0 番地,1 番地,・・・,のように付けられます.
- PC に設定されているアドレスから命令を読み込み,命令レジスタに記憶します.ここで,レジスタとは,CPU 内の高速メモリです.CPU 内部のデータの長さは一定であり,それを語長と呼びます.語長は,4 バイト( 32 ビット),または,8 バイト( 64 ビット)であり,時代と共に長くなる傾向があります.CPU 内での演算は,語長を単位として行われ,レジスタのビット長も語長に一致します.
- 読み出した命令を解読します.
- 命令の実行に必要なデータを,レジスタまたは主記憶装置から読み出します.
- 実行(演算)した結果を,レジスタまたは主記憶装置に書き込みます.
- 実行した命令が分岐命令の場合はそこで指定されたアドレスを,そうでない場合は,主記憶装置上の次の命令のアドレスを PC に設定し,ⅱに戻ります.
- 一般に,CPU の動作はクロックによって制御されています.クロックの 1 周期をクロックサイクル時間,1 秒間のクロックサイクル数をクロック周波数(単位は Hz )と呼びます.各命令は,数クロックサイクル(命令によって異なる)かかって実行されるため,同じ命令体系であれば,クロック周波数が大きいほど処理時間が早くなります.そこで,コンピュータの性能を上げるため,クロック周波数を高める努力がなされてきました.しかし,クロック周波数を高めることが頭打ちになってきたため,最近では,複数のプロセッサ( CPU )による並列処理によって性能を高める方向に変化してきました.1 チップ内に複数のプロセッサを内蔵するマルチコア( multi core )が普及し,デュアルコア( 2 コア,dual core ),クアッドコア( 4 コア,quad core ),ヘキサコア( 6 コア,hexa core ),オクタコア( 8 コア,octa core )など,多くのコア数を備えた CPU が主流となっています.ここで,コア( core )とは,CPU 内に内蔵する CPU と考えてもらって構いません.なお,複数のコアを搭載しても,コンピュータの能力全体がコアの数倍になるわけではありませんので注意してください.
- さらに,グラフィックス用チップである GPU( Graphic Processor Unit )をパソコン等で使用できる環境が整ってきました.GPU には 数千個を超えるコアが内蔵されており,超並列の世界をパソコン等で実現できるようになりました.CPU と GPU は非常に似ていますが,CPU はコンピュータ全体に対して複雑な処理を連続的に行うことを基本としていますが,GPU は画像描写に必要な単純処理を並列的に行うことを目的としており,機能を限定した CPU ともいえます.
- 記憶装置
- 記憶装置( memory )は,主記憶装置( main memory )と補助記憶装置(外部記憶装置)から構成されています.主記憶装置には,通常,DRAM( Dynamic Random Access Memory )が使用されます.DRAM は,その記憶内容が時間と共に消失しますので,消失する前に内容を読み出して書き込む操作(リフレッシュ)を行ってやる必要があります.勿論,コンピュータの電源を切ると,全ての記憶内容は喪失します.
- 主記憶装置には,実行すべき命令とデータの集まり(プログラム)が記憶され,CPU によって実行されます.CPU は,主記憶装置から命令やデータを読み込み,実行し,その結果を主記憶装置などに書き込みます.従って,CPU の速度がいくら速くても,主記憶装置への読み書きに時間がかかれば,全体の処理速度が遅くなります.これを避けるためには,主記憶装置に対する読み書きの速度を上げてやれば良いわけですが,価格や容量の制限のため,主記憶装置の全てを高速メモリに置き換えることは困難です.そこで,主記憶装置の一部を高速な SRAM( Static Random Access Memory )に置き換え,CPU からアクセスされる可能性が高い命令やデータをここに置き,実行速度を上げる工夫をしています.このようなメモリをキャッシュと呼びます.なお,SRAM も,電源が入っているときはその内容が保持されますが,コンピュータの電源を切ると,全ての記憶内容は喪失します.
- 上で述べたように,主記憶装置に記憶された命令やデータは,コンピュータの電源を切ると消失しますので,どこかに保存しておく必要があります.その際使用されるのが,ハードディスク( HDD ),ソリッドステートドライブ( SSD,ほとんどのスマホやタブレットの補助記憶装置),CD-ROM,DVD,SD カード,USB メモリなどの補助記憶装置(外部記憶装置)です.SSD,SD カード,USB メモリなどのデータ保存に使われているフラッシュメモリは,HDD などに比べて高速に読み書き可能ですが,寿命があり,また,HDD などに比べてデータの欠損率が高いため,長期保存には向いていません.特に,データを読み書きしない状態が数年以上続くと,保存していたデータが消えてしまう可能性もあります.なお,USB ( Universal Serial Bus )は,パソコン等に周辺機器を接続するための規格のひとつです.
- 入出力装置
- 入出力装置には,入力装置と出力装置が存在します.入力装置は,コンピュータに命令やデータを与えるための装置であり,キーボード,マウス,CD-ROM,カメラ,マイク,スキャナなどが相当します.また,出力装置は,コンピュータから処理した結果を受け取るための装置であり,プリンタ,パソコンのディスプレイ,スピーカなどが相当します.タッチパネル式のパソコンのディスプレイ,タブレットやスマホのディスプレイ,ハードディスク( HDD ),ソリッドステートドライブ( SSD ),DVD,SD カード,USB メモリなどは,入力装置でもあり,出力装置でもあり,両者の機能を兼ね備えた装置であると言えます.