LoginSignup
1
2

More than 3 years have passed since last update.

今日学んだ基本情報の勉強内容(1)

Last updated at Posted at 2019-10-02

この記事が初投稿になるが、今日から学んだこととか書いていこうと思う。
早速今日やったのは基本情報の勉強である。
全部書くと大変なので忘れそうなところだけ載せる

主に自分用なので見にくい部分もあるかも

ノイマン型コンピュータ

ノイマン型コンピュータは現在のコンピュータのほとんどに利用されているもので、プログラムを実行時に主記憶上に読み込んでおくプログラム内蔵方式と、プログラムを1つずつ取り出して順番に実行する逐次制御方式という構造をもつ。

CPUのレジスタ

命令を実行するために主記憶上から取り出した命令はCPU上のレジスタと呼ばれる記憶装置に保持される。

名称 役割
プログラムカウンタ 次の命令が入っているアドレスを記憶するレジスタ
命令レジスタ 取り出した命令を記憶する
インデックスレジスタ アドレス修飾で使い、連続したデータの取り出しの際に用いる
ベースレジスタ プログラムの先頭アドレスを記憶する
アキュムレータ 演算で使うデータや演算の結果などを記憶
汎用レジスタ 一時的な値の保持や、アキュムレータの代わりになったりする

命令の実行手順

①命令の取り出し → ②命令の解読 → ③対象データの読み出し → ④命令の実行

プログラムカウンタが示す主記憶上のアドレスから命令を取り出す
プログラムカウンタの値を1つ増やす

②以下のような構造の命令から命令部を取り出して命令デコーダに送られ、実行に必要な装置に制御信号を飛ばす
1569913537449.jpg

③上記の命令においてオペランド部には処理の対象となるデータのアドレスなど(アドレスとは限らない)が入っている
このデータを汎用レジスタに記憶させる

④汎用レジスタに格納したデータを用いて演算し、結果を汎用レジスタに記憶させて終了する

アドレス指定方式

命令の実行手順の対象データの読み出しで実効アドレスを求める方法がいくつかある

インデックスアドレス方式

主に配列型などの連続したデータを扱うときに用いられ、以下のような構造をしている。
真ん中にある1という数字がインデックスレジスタ番号になっている
1569914933883.jpg

以下のようなインデックスレジスタの値とオペランド部の値を計算することによって実効アドレスを求める
1569914897897.jpg

上の例だとインデックスレジスタのアドレス1に入っている10とオペランド部の100を用いて
100+10 =110
が実効アドレスとなり、主記憶が以下のようになっていたとき37を取り出すことになる
1569915087290.jpg

ベースアドレス指定方式

ベースレジスタにはプログラムが主記憶上にロードされた時の先頭アドレスが記憶されていて、このアドレスとの差分値をオペランド部に格納することによってプログラムが主記憶のどの位置にロードされても命令を取り出しやすくなっている。

相対アドレス指定方式

ベースアドレス指定方式に似ていて、ベースアドレス指定方式がベースレジスタの値を利用するように相対アドレス指定方式では次に実行する命令のアドレスが格納されているプログラムカウンタを利用して計算する。

図をつくるのめんどくさかったから省略

CPUの性能指標

コンピュータにはクロックと呼ばれる周期信号に合わせて動作している。
このクロックが1秒間に繰り返される回数をクロック周波数と呼ばれる。
逆に1クロックに要する時間をクロックサイクル時間と呼ぶ。

CPI

CPIは1命令あたりに何クロックサイクル必要かを表す指標

例:1GHzのCPUで実効に3クロックを要する命令の時

クロックサイクル時間は

\frac{1}{10^{9}} = 10^{-9} = 1ナノ秒

3クロック必要なので命令実行時間は

1ナノ秒 \times 3クロック = 3ナノ秒

MIPS

MIPSは1秒間に実行できる命令の数を表す指標
数字が大きくなるので単位は百万単位で表す

例:1つの命令を実行するのに平均2ナノ秒かかるというCPUがあったとき

1つの命令に2ナノ秒かかるので

\frac{1秒}{2ナノ秒} = \frac{1秒}{2\times 10^{-9}秒} = 0.5 \times 10^{9}秒\\
= 500,000,000個 = 500MIPS

命令ミックス

実行される命令のクロックサイクル数が異なるときにMIPSを求めるには命令ミックスを用いる。
それぞれ命令が使われる頻度によって平均をとる

例:1GHzのCPUが次の命令セットでできていた時

命令 実行時間(クロック) 出現頻度(%)
命令1 10 60
命令2 5 40
平均実行時間は
\frac{1秒}{1GHz} = 10^{-9}秒 = 1ナノ秒\\
命令1 = 10クロック \times 1ナノ秒\\
命令2 = 5クロック \times 1ナノ秒\\

10ナノ秒 \times 0.60 + 5ナノ秒 \times 0.40 = 8ナノ秒\\

よって
\frac{1秒}{8ナノ秒} = \frac{1秒}{8 \times 10^{-9}秒} = 125000000 = 125MIPS

命令ミックスの種類としては科学技術計算で使われるギブソンミックスと事務計算で使われるコマーシャルミックスがある。

CISCとRISC

CPUのアーキテクチャであるCISCとRISCの比較を以下のようにまとめた

CISC RISC
マイクロプログラムを内部に記憶させることで高性能な命令が実現できる ワイヤードロジックによってすべての命令をハードウェア的に実装
命令の追加や変更が容易 命令の追加や変更が難しい
便利な命令がそろっているので機械語のプログラム作成が楽 単純な命令だけなので手作業による機械語のプログラム作成は困難
命令の実行速度が遅い 命令の実行速度が速い
命令の長さや実行速度がバラバラ 命令の長さや実行速度がほとんど等しい

参考文献

  • [キタミ式イラストIT塾 基本情報技術者 平成28年度]
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2