1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CPUの高速化技術

Last updated at Posted at 2022-07-24

パイプライン処理

逐次制御方式で命令を実行していくと
命令の取り出し、命令の解読、対象データの呼び出し、命令実行どれか一つが動いているがそれ以外は動いていないことになる。
そうすると、動いていないところは無駄になってしまう。
そのために複数の命令を同時に行うことによって無駄を無くして、命令の速度を速くできる。
これをパイプライン処理という。

例で3つの命令を実行すると12クロック掛かるがパイプライン処理を行うと、6クロックでできる。
命令実行手順の各段階のことをステージと言う。

気づき

CPUは大変だな。
パイプライン処理は忙しいけどすごいな。
ステージはgitみたいだ。

分岐予測と分岐実行

次から次へと命令を先読みしている。分岐命令が出できた場合は先読み分が無駄になったしまう。これを分岐ハザードと言う。

この分岐ハザードを防止するためにこの分岐命令が実施される場合次の命令がどれかを予測する。
これを分岐予測という。
そうすることで無駄な待ち時間を生じさせないようにする。

それでその予測に基づいて分岐先の命令を実行開始する手法を投機実行と言う。

気づき

予測をする予測をもとに命令を実行する。しかし予測が外れると分岐ハザードになるのかな。
予測の精度が高くなるほど分岐予測が生きてくるのか。
 

スーパーパイプラインとスーパースカラ

パイプライン処理をさらに拘束させるための手法

スーパーパイプライン

  • 各ステージの中身をさらに細かいステージに分割する
  • 1/2クロック単位で実行する方式。論理的には1クロックで2命令を実行可能で、ステージ数が増えれば、各ステージで行う処理はより単純稲荷、動作周波数を上げやすくなる。
    出典 https://gihyo.jp/book/2022/978-4-297-12375-8

気づき

各ステージを細分化させるとはどうやってするのだろうか?

スーパースカラ

パイプライン処理を行うカイロを複数持たせることで同時に複数の命令を実行できるようにする。

気づき

CPUが複数あるのかな?

CISCとRISC

CPUのアーキテクチャ(基本設計・設計思想)を紹介

CISC

CPUに高機能な命令を持たせる。一つの命令で複雑な処理を実現するアーキテクチャ

  • 高機能な命令が実現できる。
  • 命令の追加や変更が容易
  • 機械語のプログラム作成が楽
  • 命令の実行速度は遅い
  • 命令の長さや実行速度がバラバラ

RISC

CPU内部に単純な命令しか持たないしかしハードウェアのみで実装して一つ一つの命令を高速に処理するアーキテクチャ

  • ワイヤードロジックによって全ての命令をハードウェア的に実装
  • 命令の追加や変更は難しい
  • 単純な命令があるだけなので手作業による機械語のプログラム作成は困難
  • 命令の実行速度が速い
  • 命令の長さや実行速度がほどんど等しい
  • パイプライン処理の実行効率が高くなる

疑問 ワイヤードロジックとは?

マイクロプログラム

マイクロプロセッサーの内部処理方法は二通りしかなく、一つはマイクロプログラムで実行する方法、もう一つはこのワイヤードロジックで実行する方法である。
出典 https://www.wdic.org/w/SCI/%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%BC%E3%83%89%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF

出典 

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?