この記事が初投稿になるが、今日から学んだこととか書いていこうと思う。
早速今日やったのは基本情報の勉強である。
全部書くと大変なので忘れそうなところだけ載せる
主に自分用なので見にくい部分もあるかも
ノイマン型コンピュータ
ノイマン型コンピュータは現在のコンピュータのほとんどに利用されているもので、プログラムを実行時に主記憶上に読み込んでおくプログラム内蔵方式と、プログラムを1つずつ取り出して順番に実行する逐次制御方式という構造をもつ。
CPUのレジスタ
命令を実行するために主記憶上から取り出した命令はCPU上のレジスタと呼ばれる記憶装置に保持される。
名称 | 役割 |
---|---|
プログラムカウンタ | 次の命令が入っているアドレスを記憶するレジスタ |
命令レジスタ | 取り出した命令を記憶する |
インデックスレジスタ | アドレス修飾で使い、連続したデータの取り出しの際に用いる |
ベースレジスタ | プログラムの先頭アドレスを記憶する |
アキュムレータ | 演算で使うデータや演算の結果などを記憶 |
汎用レジスタ | 一時的な値の保持や、アキュムレータの代わりになったりする |
命令の実行手順
①命令の取り出し → ②命令の解読 → ③対象データの読み出し → ④命令の実行
①プログラムカウンタが示す主記憶上のアドレスから命令を取り出す
プログラムカウンタの値を1つ増やす
②以下のような構造の命令から命令部を取り出して命令デコーダに送られ、実行に必要な装置に制御信号を飛ばす
③上記の命令においてオペランド部には処理の対象となるデータのアドレスなど(アドレスとは限らない)が入っている
このデータを汎用レジスタに記憶させる
④汎用レジスタに格納したデータを用いて演算し、結果を汎用レジスタに記憶させて終了する
アドレス指定方式
命令の実行手順の対象データの読み出しで実効アドレスを求める方法がいくつかある
インデックスアドレス方式
主に配列型などの連続したデータを扱うときに用いられ、以下のような構造をしている。
真ん中にある1という数字がインデックスレジスタ番号になっている
以下のようなインデックスレジスタの値とオペランド部の値を計算することによって実効アドレスを求める
上の例だとインデックスレジスタのアドレス1に入っている10とオペランド部の100を用いて
100+10 =110
が実効アドレスとなり、主記憶が以下のようになっていたとき37を取り出すことになる
ベースアドレス指定方式
ベースレジスタにはプログラムが主記憶上にロードされた時の先頭アドレスが記憶されていて、このアドレスとの差分値をオペランド部に格納することによってプログラムが主記憶のどの位置にロードされても命令を取り出しやすくなっている。
相対アドレス指定方式
ベースアドレス指定方式に似ていて、ベースアドレス指定方式がベースレジスタの値を利用するように相対アドレス指定方式では次に実行する命令のアドレスが格納されているプログラムカウンタを利用して計算する。
図をつくるのめんどくさかったから省略
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年度]