コンピュータ概論1. コンピュータ概論 1.1 序論 コンピュータは20世紀紅斑に発明された新しい道具である.その出現以来,まだ数十年しかたっていないが,今日多くの人々の何らかの形で恩恵を与えている.直接的にコンピュータを利用することもあれば,旅行の予約など,他者を介して間接的に利用することもある.既に,家電製品などの組み込まれ,無意識のうちにコンピュータを使っていのが現状である. ここでは,コンピュータの構造を理解するために必要最小限の規模でマイクロコンピュータを考え,その構成,命令,動作シミュレーションを行うことにより,コンピュータの構造について学ぶ.
![]() 図1.1 コンピュータの基本構造 コンピュータの形態について,パーソナルコンピュータとマイクロコンピュータについて図1.2に示す.通常のパーソナルコンピュータでは,本体は演算,制御,記憶装置までを含むケースに収納され,キーボード,マウス等の入力装置,及びディスプレイ,プリンタ等の出力装置を用いる.CD-RW,MO等は外部記憶装置の一種である. ![]() 図1.2 コンピュータの形態
コンピュータとは扱う情報を電気信号として受け取り,電子的な回路により情報を処理し,その結果を電気信号による情報として外部に出力する.つまり,コンピュータとは複雑な電子回路の一種である.最も単純な2進数を電気信号に当てはめれば,様々な情報をコンピュータにより電気的に計算し,処理することができる. 1.4 プログラミングと言語 情報を処理するためには,その処理手順をCPUに指示しなければならない.処理手順を作成することプログラミングという.記述されたものをプログラムという.これはコンピュータのハードウェアと対比して,ソフトウェアとも呼ばれる.CPUが処理できる情報は前述のように2進数の電気信号である.そこで,CPUで直接解釈できる2進数でCPUの動作手順を記述する.この2進数による記述を機械語という.しかし,機械語は人間が直接理解しにくい.そこで,我々は機械語を直接記述するのではなく,機械語と一対一対応のアセンブリ言語で動作を記述する方法をとる.例えば,”ADD 0FH”とは,メモリの0FH番地の内容とアキュームレータの内容とを足して,その結果をアキュームレータに入れるという動作を示すアセンブリ言語である.この場合,2進数で対応する機械語は”00001111”であり,16進数では”0FH”である.このように我々はアセンブリ言語でプログラムを記述し,それを機械語に変換する(アセンブル)ことにより,機械語のプログラムを作成する.アセンブリ言語により記述されたプログラムを機械語に変換するプログラムをアセンブラという.一方,我々の使っている概念により近い,Pascal等の高級言語は直接的に機械語に変換できない.高級言語は,構文解析,定数,変数処理,最適化等の処理によりCPUで直接実行できる機械語に翻訳する必要がある.これを行うのがコンパイラである.
図1.1に示したコンピュータの基本構造を実現するためには,通常図1.3の様な回路構成を取る.CPUはメモリや,入出力ポートに対してアクセスと呼ばれるデータの読み込みや書き出しを操作を行いながら逐次プログラムを実行する.CPUがデータの読み込みを行う際,CPUが何に対してアクセスするかを示すためアドレス信号を出力しデータを待つ.書き出しの場合,CPUはアドレス信号を出力しつつデータ信号を出力する.回路を効率化するためアドレスやデータ信号はそれぞれアドレスバス,データバスと呼ばれる共用の信号線により接続されている.複数個のメモリや,ポートが存在する場合,アドレスが重複しないようアドレスデコーダと呼ばれる回路を介してアドレスバスとメモリ,ポートを接続する. ![]() 図1.3 コンピュータの回路構成
CPUはメモリに記憶されているプログラムを逐次読み出しながら実行を行う.まず最初に,フェッチと呼ばれる命令の読み込み動作が行われる.プログラムカウンタの内容がアドレスレジスタに転送され,アドレス信号がアドレスバス出力される.データバスより入力されたデータはデータレジスタにを介して命令レジスタに送られ,命令デコーダにより解析される. ![]()
![]() 図1.5 典型的なマシンサイクル
同じビットのCPUにも,アーキテクチャ(設計法)の違いによって各社から様々なCPUが作られている.CPUのアーキテクチャは大きく分けて2通りある.一つはCISC(Complex
Instruction Set
Computer)と呼ばれる多種多様な命令を用意し,効率の良いプログラム作成を主眼とした設計である.この場合,ハードウェアが複雑化してしまう欠点がある.もう一つはRISC(Reduced
Instruction Set
Computer)と呼ばれるもので,命令数を減らし,簡略化することでハードウェアを単純化して高速化を目指した設計である.現在は,CISCとRISCの双方の利点を活かし,欠点を補ったCPUの設計がされてきており,両者の境界がなくなってきている. ジャンル別一覧
人気のクチコミテーマ
|