コンピュータ・アーキテクチュア(第3講)
2016.10.17 藤木 文彦 |
※以下で説明するのは、2008年ころまでのコンピュータの基本構造です。
それ以降、コンピュータは「高速化」から「並列化」への方向に向いてきますが、まずは、初期のコンピュータの構造から勉強します。
下の写真は、最新鋭CPU 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メモリとは、どのようなメモリか、説明しなさい。