コンピュータ・アーキテクチュア(第3講)

2016.10.17
                       
藤木 文彦

 ※以下で説明するのは、2008年ころまでのコンピュータの基本構造です。

 それ以降、コンピュータは「高速化」から「並列化」への方向に向いてきますが、まずは、初期のコンピュータの構造から勉強します。

下の写真は、最新鋭CPU Xeon phi Knights landing  です。

「xeon phi knights landing」の画像検索結果「xeon phi knights landing」の画像検索結果

 CPUの基本構造


 CPUは、半導体の板の上に、様々な回路を構成して、コンピュータの中心となる、演算、制御を行うために作られた部品です。
 この装置は、極めて細い回線と、複雑な回路で成り立つ装置で、「ダイ」と呼ばれ、大きさは、大体、1cm角程度なのですが、そのままですと、マザーボードなどに接続することが出来ませんので、何回りか大きい、パッケージに収められ、接続のピンが多数接続されています。



 この「ダイ」の上には、様々な役割を行う回路が組まれています。(製造方法の説明は、別の機会に譲ります。)
 次に、その、様々な役割をする部分を大きく分類した図を示します。これは、実際の回路を、電子顕微鏡で撮影し、わかりやすいように、色づけ工夫したもので、当然、肉眼で見ても分かりませんし、このような色をしている分けではありません。




 上記の図面の各部分は、それぞれに、各種の働きを持っています。
 なお、以下に論理的なつながりを示した図を書きましたが、必ずしも、この配置どおりに並んでいるわけではありません。

以下の説明は、上の図面の順序と異なりますが、信号の流れをたどって説明していきます。

■バスインタフェースユニット
 CPUが、外部から命令やデータを読み込んだり、結果を外部に出力したりするためには、その間をつなぐ装置が必要です。そのような装置を、インタフェース回路と呼びます。
 また、多数の信号線で装置の間をつなぐ信号線を「乗り合いバス」にたとえて「バス」と呼びます。

■キャッシュメモリ
 プログラムやデータなどを、ある程度まとまってCPU外のメモリから読み込み、CPU内にためておくことで、高速なメモリアクセスを可能とするための装置。

■フェッチユニット
 読み込んだ命令を少しの間、ためておく場所。最近のCPUは、効率的な命令の実行のために、あらかじめ少し先まで命令を読み込んでおくように作られている。その命令をためておくのが、この部分。

■デコーダ
 読み込んだ命令が、どういう意味なのかを、解釈する部分。ここから、データを、制御ユニットに送ったり、演算ユニットに送ったりする。

■制御ユニット
 読み込んだ命令に従って、どこの回路を、どのように動かすかを制御する部分。

■整数演算ユニット、浮動小数点演算ユニット(ALU)
 数値計算をする部分。コンピュータでは、整数だけを扱う場合と小数も含めて扱い場合(浮動小数点演算という)とでは、計算の仕方が、全然ちがうので、2つの演算は、別の回路が組んである。




 現在主流のCPU CORE i7 の写真
(http://ascii.jp/elem/000/000/191/191603/ より)








http://pc.watch.impress.co.jp/docs/topic/feature/20130903_613772.html






 次に、CPUの内部構造を、動作のブロックのつながりが分かるように、解説します。

 ここで、いくつかの専門用語が現れます。CPU内部で一時的にデータを蓄える装置のことを「レジスタ」と言います。

 また、CPUと、周辺の装置をつなぐデータの信号線の事を「バス」といいます。「バス」には、どこからデータを持ってくるかを指定する「アドレスバス」と、計算するデータを持ってくる「データバス」があります。(CPUによっては、これが、同一の信号線になっているものもあります。)





■アドレスレジスタ
 CPUが命令やデータをメモリから持ってくるためには、メモリのどの場所から持ってくるかを指定しなければなりません。この場所を「アドレス」と呼びます。次に、実行する命令がどこにあるのか、次に計算するデータがどこにあるのかをしめすのが、「アドレスレジスタ」です。

■データレジスタ
 CPUが持ってきたデータを、内部に一時的に記憶する場所です。ここにあるデータを演算して結果を出します。

■ALU(数値・論理演算機)
 データの加減乗除など、CPUの中心となる計算を行う部分です。上記の図では、妙な形に見えますが、上から2つのデータを入れて、下から一つのデータを出す、( 1+2=3 のような演算です。)という意味を形で分かりやすくしたものです。(実際にこのような形をしている分けではありません。
 数値として、整数だけを扱うものと、浮動小数点を行うものがあります。(浮動小数点の意味は、自分で調べること。)

■内部通信レジスタ
 CPU内部で演算するためのデータやアドレスなど、外部と内部を通信するときに、一時的にデータを蓄える役割をする記憶装置です。

■命令キュー
 読み込んだ命令を、先読みして一時的に保存しておく場所です。

■制御ユニット

 命令に従って、CPUの各部分に、どのような動作をするかを指示する場所です。

 メモリの構造








■第3回目(10月17日)の課題

 本日は、以下の課題について、インターネットで調べ、メールで報告して下さい。これが、出席点となります。

 宛先 fujiki.kougei@gmail.com
 タイトル arch3


 なお、メールの先頭に学生番号と氏名を記入すること。

 課題1:
 CPU内部で、数値演算を行う部分をなんと呼ぶか。

 課題2:
 浮動小数点、とは、どのような、数値の表現法か、2〜3行で説明しなさい。

 課題3:
 CPUの動作速度は、MHzまたは、GHzで表されることが多い。1クロックで、1命令を実行できるとすると、2GHzで動作するCPUでは、1秒に、何命令を実行できるか。

 課題4:
 デコードとは、どのような働きのことか、2〜3行で説明しなさい。

 課題5:
 メモリにも、いろいろな種類の、ものがある。DDR3メモリとは、どのようなメモリか、説明しなさい。

inserted by FC2 system