C言語を学ぶ上での基本知識−8
C言語を学ぶ上での基本知識−8
(データーの圧縮、コード)
前回
最初から
コンピューターの機能
入力、出力、記憶、演算、制御を5大機能という
ハードウエアーシステム
ハードウエアでは入力信号がAND/ORなどの理論ゲートで処理され、
情報はフリップフロップで記憶されている
フリップフロップ(FF)…二進法の基本である1ビットの情報を
一時的に"0"または"1"の状態として保持する(記憶する)ことができる論理回路
入力ポート
入力信号は入力ポートを介して中央のレジスタに読み込まれ、
まとめて処理、必要なら内部メモリーに記憶される。
演算機能の集約
演算処理はすべてレジスタ上で、論理演算・算術演算機能を持つALUと連携して処理される。
ALU…様々な演算機能がまとめられている。
ノイマン型CPU
機械語をメモリーに格納し1つずつ取り出して順次解読、実行する
次に実行する機械語の番地はプログラムカウンターで保持され、
機械語を書き換えれば処理内容を変えることができる。
ソフトウェアと呼ばれている。
それては反対にハードウェアでは書き換えができない。
ノイマン型コンピューターでは機械語は1つずつ取り出ししながら解読されるため時間がかかる
CPU…中央処理装置または中央演算処理装置。コンピュータにおける中心的な処理装置。
ノイマン型CPUの動作
↓ 取り出し(フェッチ)
↓ 解読 (デコード)
↓ 実行(クロック)
アーキテクチャ
レジスタ構成、ALU機能、割り込みの仕組み、機械語の体系などの構成方法のこと
CPUの種類
強力な命令を持ち少ない命令で複雑な計算をこなす
命令体系を単純化して内部のパイプライン処理効率を高められている
行列演算など有効な積和演算回路を内蔵
CPU内ではレジスタ上でデーター処理が行われる
データーの場所指定
即値データ
命令自体にデーターが含まれている
レジスタアドレシング
レジスタ間のデーター移動
命令でレジスタを指定する
直接アドレシング
命令にメモリの番地が含まれている
命令でアドレスを直接指定する
関節アドレシング
あらかじめデーターの置いてあるレジスタを指定する
絶対アドレス方式
メモリのアドレスそのものを指定
相対アドレス方式
標準メモリが置いてある場所と目的番地との差を指定
割り込み
CUPは普通あらかじめ決められた順にプログラムを実行しますが、実行中のプログラムを一時的に中断して
別の処理を行う仕組みが設けられています。
外部割り込み
プログラムとは無関係に周辺回路からの信号により発生
瞬時停電やソフトウェア故障、リセットなど
内部割り込み
プログラムが原因で発生
割り込みの仕組み
割り込み機能の有効性
あらかじめ要因ごとの処理プログラムを用意することで要因により自動発生する仕組みをと来ることができる。
リアルタイム処理と並列処理が可能になる
高速化技術
処理速度が劣りますが処理速度を上げるためにさまざまな方法があります
キャッシュ
よく使われるメモリー内容を低速から高速に移しておくこと
アクセスされた付近のデーターをまとめて高速メモリーに転送しそのアドレスを記憶する
ライトスルー方式
キャッシュとメインメモリー同時に書き込む
ライトスルー方式は簡単だが、キャッシュによる高速化はできない
ライトバック方式
CPUが記憶装置にデータを書き込む際、いったんキャッシュメモリーにデータを書き込み、
処理の空き時間ができてからキャッシュメモリーからメインメモリーに書き込む方式
パイプライン
複雑命令セットコンピュータ
縮小命令セットコンピュータ
パイプライン
CISCでは内部構造が複雑で実行困難な高速化方法
RISCの命令過程
フェッチ→ デコード→実行→メモリーアクセス→レジスタ書き込み
これを利用し例えば命令をデコードしているとき
同時に次に命令をフィッチすることができ並列処理により処理速度を速めることができる
スーパースカラ
プロセッサーの中に複数の命令を並列に処理する方式のこと
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
おすすめ参考書
参考HP
情報に誤りがある場合コメントにてお知らせいただけると幸いです。