back

処理装置(CPU)


CPUの高速化

  ・パイプライン
    命令の実行サイクルを,命令の取出し,命令の解読,オペランドのアドレス
  計算,オペランドの取出し,実行のような複数の段階に分け,各段階の処理
  を別々の装置が担当することによって,複数の命令を並列に処理する
  ・RISC(Reduced Instruction Set Computer)
     命令を単純化
     命令の長さと実行時間を一定にすることにより高速化
  ・CISC(Complex Instruction Set Computer)
    
処理能力

  ・MIPS(Mllion Instruction Per Second)
    1秒間に何百万回の命令を実行できるかの単位
    最近はGIPSになりつつあるようです。
  ・FLOPS(Foating−point Operations Per Second)
    1秒間に浮動小数点演算命令が何回実行できるかの単位


★★★宿題:二種向け★(2000/2/15)(2000/10/11)

 命令の実行サイクルを,命令の取出し,命令の解読,オペランドのアドレス計
算,オペランドの取出し,実行のような複数の段階に分け,各段階の処理を別々
の装置が担当することによって,複数の命令を並列に処理する制御方式はどれか

 ア データフロー

 イ パイプライン

 ウ プロセス

 エ マイクロプログラム


■解答■
  二種午前平成11年秋問18

 イ パイプライン

>パイプライン処理[pipeline processing]
>コンピュータの演算処理速度を上げるために考え出されたもので、
>先回り制御方式のひとつである。ひとつの演算処理をいくつかの
>ステップに分け、一つのステップが終了するたびに新しい
>演算処理をスタートさせていく。
>複数の処理をオーバーラップさせることで、全体としての処理
>時間が短縮される。
>(「わかりやすいコンピュータ用語辞典」ナツメ社 p467)

 どうもありがとうございました。

>ちなみに各段階を並列に処理すると、スーパースカラ方式。

 どうもありがとうございました。

>マイクロプログラム[microprogram]
>メインメモリを参照しないプログラムのこと。CPUの基本的命令
>であるマイクロ命令のみを使って書かれたプログラム。
>(「わかりやすいコンピュータ用語辞典」ナツメ社 p543)

 なかなかユニークな説明ですね。つまり,CPUに内蔵(に近い)されたプログ
ラムですね。

>パイプライン処理:Pipeline Processing
>1つのCPUで複数の命令を同時に処理する方式。アセンブラ命令の内部処理結果の
>保存場所をCPU内に複数作り、ある命令が次の内部処理に移動した際,次の命令の
>内部処理を始めることができるようにして、CPU内で複数の命令を並行して処理
>すること。CISC CPUでは、アセンブラ命令により内部処理の数が違うため、性能の
>限界を高くできなかったが、RISC CPUはパイプライン処理の効果が最大に発揮され
>るようにアセンブラ命令の内部処理の数を合わせている。
>2000年版最新パソコン用語辞典p363 (秀和システム出版編集部)

 どうもありがとうございました。

> 初代 Pentium はパイプライン、PentiumUはスーパスカラですね。

 どうもありがとうございました。インテル系の CPU と高速テクニックと表に
したいですね。

>パイプラインと言う言葉は、自動車の組立ラインから取った言葉なんですね。

 私は,石油コンビナートの用語と思ってますが?

> こんなイメージでしょうか。
>
> ←時間
>  ┌─┬─┬─┬─┬─┐
>  │ 1 │ 2 │ 3 │ 4 │ 5 │
>  └─┼─┼─┼─┼─┼─┐
>      │ 1 │ 2 │ 3 │ 4 │ 5 │
>      └─┼─┼─┼─┼─┼─┐
>          │ 1 │ 2 │ 3 │ 4 │ 5 │
>          └─┼─┼─┼─┼─┼─┐
>              │ 1 │ 2 │ 3 │ 4 │ 5 │
>              └─┴─┴─┴─┴─┘
>          :  :  :

 そうです。唄でいうと輪唱です。

> ア データフロー
> 従来の装置ではプログラムが指定する制御フローに沿って処理を
> 進めるのに対し、データフロー方式では入力データが揃って実行可能に
> なった命令から次々に実行する。
このため、問題の性質の従って自然に
> 並列処理が実現される。ただし、ソフトウェア開発が容易ではないと
> いった問題があるため、広く普及しているとは言えない状況である。
> イ パイプライン
> 汎用コンピュータはもちろん、最近ではマイクロプロセッサでも広く
> とり入れられている。
> ウ プロセス
> ある結果を得るための処理の単位であり、OS がジョブの実行手順を
> 管理したり、資源を割り当てる際の単位である。
> エ :マイクロプログラム
> 機械語よりも低いレベルに位置して、ハードウエアの動作を細かく制御する
> プログラム。
ファームウェアとも呼ぶ。ハードウエアの制御方法を工夫する
> ことにより、パイプライン演算や並列動作を実現できる。
>
> 参考 日経BP社「2000年版 情報・通信新語辞典」
>    ナツメ社「わかりやすいコンピュータ用語辞典」

 どうもありがとうございました。

> CPUアーキテクチャ
> http://www1.freeweb.ne.jp/~bluecat/itx/sp_02.html
> マイクロプログラム
> http://www.geocities.co.jp/HeartLand/5307/IStady1Syu02_004.htm

 どうもありがとうございました。


★★★宿題:二種向け★(2000/5/25)

 コンピュータの高速化技術のうち,一つの命令を n 個の独立な処理段階に分
割し,各処理段階を並行に実行できるようにして,複数の命令をオーバラップさ
せて実行する方式はどれか。

 ア out-of-order 実行

 イ キャッシュメモリ

 ウ パイプライン処理

 エ 分岐予測


(解答)

もうわかりますね。
そうです。エです・・・・。ウそですよ。
ちなみにここではっきりと説明できるのは、イ、ウだけです。
ア、エは言葉からぼんやりと光って見えるんですが、ン〜?
まア〜それでも解答できますから。

■解答■(宿題メールより)
  二種午前平成12年春問18


>・パイプライン
>1つの命令を複数のフェーズに分けて実行するとともに
>後続の命令を先読みして可能なフェーズまで実行し
>実行時間の短縮を図る方法。
>(「情報処理用語辞典」 新星出版社 P289 )

 どうもありがとうございました。

> 「嵯峨乃 の 情報処理用語辞典」を参照させていただきましたが、
> CPU内での処理を歌の輪唱のように、ずらして、連続的に処理をする方式
> と、ありました。パイプラインから連想するものが、原油の送油管のような
> イメージなので、並行処理、といったイメージがないのですが・・・。
> 他にもよい覚え方が、ないでしょうか?

 工場同士がパイプラインでつながっています。工場はそれぞれ稼働してます
ので,「平行処理」です。

> out-of-order 実行【out of order execution】
> → http://www.ascii.co.jp/ghelp/10/001069.html
> プログラムで記述されている順序とは異なる順序でプログラム中の命令を
> 実行すること。
> キャッシュメモリ【cache memory】
> → http://www.ascii.co.jp/ghelp/1/000120.html
> メモリシステムの高速化技法の1つ。
> パイプライン【pipeline】
> → http://www.ascii.co.jp/ghelp/0/000020.html
> 別々の作業を順次同時に行ない、実行ユニットを無駄に待たせることなく、
> 次々と実行すること。
> 分岐予測【branch prediction】
> → http://www.ascii.co.jp/ghelp/10/001075.html
> パイプラインアーキテクチャを持つマイクロプロセッサにおいて、効率よく
> パイプラインを働かせ、プロセッサの性能を向上させるための技術。

 どうもありがとうございました。
 よくわかりました。(太チョ)


★★★解説:二種(基本情報技術者)向け★(2000/9/13)

 データの書込み命令実行時に,プロセッサがキャッシュメモリと主記憶の両方
にデータを書き込む方式はどれか。

 ア セットアソシアティブ

 イ ダイレクトマッピング

 ウ ライトスルー

 エ ライトバック


■解答■
  ネットワークスペシャリスト午前平成11年問46

> ライトスルー(write through)
>  処理装置が書き込み動作を行った場合、直ちに主記憶装置へ書き込みを
> 行い、キャッシュメモリと主記憶装置の内容を一致させる方式。
> 新星出版社「情報処理用語辞典」P.371より抜粋

 どうもありがとうございました。

>http://www.teu.ac.jp/nsit/kudoh/kenkyu/yama-mid.html
>ここでわかりました。

 レベルが高い内容ですね。

二種問題としては分からない用語が多いですね。
下の問題で用語だけでも覚えておきますか。それにしても読みにくい用語だ。

高度共通・一種向け(宿題メール1999/9/10)

 CPU と主記憶装置の間におかれるキャッシュメモリにおいて,主記憶装置上に
あるブロックを,キャッシュメモリ上の数個の特定ブロックと対応づけるマッピ
ング方式はどれか。

 ア セットアソシアティブ方式

 イ ダイレクトマッピング方式

 ウ フルアソシアティブ方式

 エ ライトスルー方式

■解答■
  ネットワークスペシャリスト午前平成9年問52

 ア セットアソシアティブ方式

>セットアソシアティブ方式:
> キャッシュメモリの複数ブロックの集合と対応したもの。
>ダイレクトマッピング方式:
> キャッシュメモリの特定のブロックと対応したもの。
>フルアソシアティブ方式:
> キャッシュメモリの任意のブロックと対応したもの。 
>ライトスルー方式:
> キャッシュメモリ書き換えと同時に主記憶も書き換える。


 どうもありがとうございました。

>全くわからなくて、調べました。このページを参考にしました。
>http://member.nifty.ne.jp/Natsutan/study/cache/cache1.htm

> ・キャッシュの割り付け(マッピング)方式
> ●セットアソシアティブ方式
> キャッシュメモリ上のいくつかのブロックの集合であるセットごとに、連想
> メモリをもたせ、主記憶上のブロックをセット単位で対応づけてマッピング
> する方式である。
> ●ダイレクトマッピング方式
> 主記憶中のブロックがキャッシュメモリのどの位置に割り付けられるかが決
> まっている(固定されている)方式である。
> ●フルアソシアティブ方式
> 主記憶中のブロックをキャッシュメモリ中の任意に配置できるマッピング方
> 式である。主記憶アドレスからキャッシュメモリを参照するさいは、連想メ
> モリが用いられる。

 どうもありがとうございました。

>http://www.teu.ac.jp/nsit/kudoh/kenkyu/yama-mid.html
> 1.ブロックの位置
>
>ブロックの位置に関する制約のつけ方により、キャッシュの構成は
>次の3とおりに分類される。
>
>  ダイレクトマップ方式(direct mapped)
>      各ブロックのキャッシュの上での位置が一意に決められている方式。
>      マッピングは、通常
>     (ブロックフレーム・アドレス)mod(キャッシュ中のブロック数)
>      によって行なわれる。(modは剰余演算)
>
>  完全アソシアティブ方式(fully associative)
>      ブロックをキャッシュ上の任意の位置に置く方式。
>
>  セットアソシアティブ方式(set associative)
>      ブロックをキャッシュ上のある決められた範囲の中にだけ置く方式。
>
> 2.メモリの書き込み方式
>
> 基本的な手法として、次の2つがある。
>
>  ライト・スルー(write through)
>      書き込みがキャッシュとその下位のメモリの両方のブロックに対して
>      行なわれる。
>
>  ライト・バック(write back)
>      書き込みはキャッシュのブロックに対してだけ行なわれる。
>      データが変 更されたキャッシュ中のブロックは、置き換えの対象に
>      なった時に主記憶に 書き込まれる。

 どうもありがとうございました。