CPU発達史(1)

↑

CPUとは

私がコンピュータの勉強をし始めた頃(1972頃)、コンピュータは次の5要素 から成ると書かれた本が多かったように思います。

    ・―――制御装置―・――・     ↓    ↑↓  |  ↓   入力装置―→記憶装置―+→出力装置          ↑↓  。
        演算装置←・

しかしちょうどその頃マイクロプロセッサが登場し、当時この「てのひらに 乗る」チップをコンピュータと認めるべきかどうかなどという論争が起き始 めていました。そして現代ではほぼ全ての現役コンピュータがマイクロプロ セッサ・ベースのシステムになっています。

一般にはこの「コンピュータの五要素」から入出力装置を省いたもの、つま り、制御装置・記憶装置・演算装置の部分、あるいは記憶装置も別にして、 制御装置と演算装置の部分をCPU(Central Processing Unit,中央処理装置) といいます。

かつてはこの「演算装置」にしても「制御装置」にしても大量の真空管やリ レー、後にはトランジスタ・ダイオードの組み合わせで構成された、まさに 「装置」だったのですが、現代では多くのシステムでCPUは1個又は数個 の汎用マイクロプロセッサで構成されており、「制御装置」や「演算装置」 はそのICチップの中の配線の一部として実現されています。

現在使用されている主なCPUには次のようなものがあります。

 ・インテルのPentiumシリーズ及びその互換CPU  ・モトローラ・IBM・アップルのPowerPC  ・コンパックのAlpha  ・サンのSPARC  ・シリコングラフィックのRシリーズ

次々回以降に、これらの発達の経緯を見ていくことになるかと思います。

CPUの構造

CPUは基本的には次のような部品で構成されています。

 ・制御回路  ・演算回路  ・レジスタ(置数器)  ・バッファ(緩衝用記憶装置)  ・バス(情報運搬路)  ・クロック(時計)

制御回路は全体の制御をしている部分で基本的には裏方的な役割です。

演算回路は足し算・引き算・掛け算・割り算・論理演算などの計算をする回 路です。近年の多くのCPUではここが「パイプライン」という構成になっ ていて、データがこの中を「転がっていく」ことにより演算がなされます。
このパイプラインは一般に何本もあるので、複数個の演算が同時実行できます。

また以前は「浮動小数点演算」と呼ばれる高度の計算については別途専用の プロセッサを設置してそちらで処理していましたが、近年はこれをCPU内部に 内蔵していることが多いです。

レジスタは、コンピュータの内部構造に詳しい人以外には、なじみの薄い概念 ですが、日本語では置数器と訳されています。非常に高速に動作する記憶装置 (フリップフロップ)であり、一般に多くのシステムではメモリーのデータを ここに転送して、ここで各種の演算を実行し、結果をメモリーに格納すると いう方法をとります。

レジスタには次のような種類があります。

 汎用レジスタ  :演算その他用  カウンタレジスタ:プログラムの繰返し処理などのカウント用。神社で           言えば、お百度石。
 ベースレジスタ :メモリ上のプログラムやデータのかたまり(セグメント)           の管理をしています。
 スタックレジスタ:プログラムでスタックと呼ばれる特殊なメモリの管理           をしています。
 ポインタレジスタ:文字列を高速に扱うためのレジスタ  プログラムカウンタ:現在CPUがプログラムのどこを実行中であるかを           記憶しておくためのレジスタ  フラグレジスタ :各種のフラグ(スイッチ)を維持するためのレジスタ

なお、特に汎用レジスタの中の先頭の、メインの汎用レジスタのことを一般 にアキュムレータ(累算器)と呼びます。

現在のCPUの多くの先祖ともいうべき、インテルの8080のアキュムレータ は「A」と呼ばれていました。Accumulatorの A です。それがインテル系の 後継CPUでは A,B,C,D という汎用レジスタが作られました。これに対して モトローラの系列では A1,A2,A3,A4,... という汎用レジスタが作られました。

インテルのCPUは現在のPentium III でも汎用レジスタは EAX,EBX,ECX,EDXの 4つしかありませんが、モトローラは多数の汎用レジスタを持っていました。
その結果、モトローラCPUのプログラマはこの多数のレジスタを使用して高速 に動作するプログラムを書くことができたことが、このCPUがグラフィックを 多用するMacintoshや科学技術計算を多数行うワークステーションなどで採用 された理由ではないか、と私は推察しています。

さて、パソコンのハードの話をしているとしばしば「バス(bus)」という言葉 が出てきますが、これはそこら辺の道路を走っている乗り合いバス(autobus) と同じ意味です。つまりこれは汎用のデータ伝送路であり、色々なデータが 相乗りしてそこを伝わるので「バス」というわけです。実際にはアルミ・銅・ 金などで作られた細い線およびそれを制御している回路で構成されます。

クロックというのはCPUに内蔵されている時計です。会社の壁などに掛か っている時計はこちらで時々見るだけですが、CPU内部の時計というのは とてもうるさい時計で、毎回ボーンボーンと音をならしています。○MHzの CPUというのをよく言いますが、例えば 800MHzのCPUというのは1秒間に 800×100万回、つまり8億回鳴る時計を使っているということになります。
CPUの中に入っている各回路はこの1秒間に8億回鳴る時計を聞きながら、そ れに合わせて仕事をしているわけです。

このとき1秒間8億回の時計で仕事ができるのなら、時計をちょっとだけ速く して1秒間10億回くらいにしても、仕事ができそうな気がします。これがCPU のクロックアップというもので確かに高速になる確率もあるのですが、仕事 の遅い回路はその時計では作業ができなくなって、今まで1回ボーンと打つ 度に1作業していたのが、2回ボーンボーンと打つ間に1作業するようになる かも知れません。すると結果的にはクロックアップにより逆に遅くなるとい う現象も起きる訳です。

しかし中にはものすごく仕事の速い奴もいることがあります。最近のメモリ はだいたいクロックの立ち上がりと立ち下がりを利用して作業しています。
つまりボーンの「ボ」と音が出た所で1作業して、「ン」と音が消えた所で 1作業するというわけです。偉い奴もいるものです。

実際パソコンというのは、いろいろな速度の部品が集まって構成されており、 それらをうまくまとめて動かしている制御能力というのはすごいものです。
最近のCPUはだいたい何十億というトランジスタで構成されていますので、 部品を人間にたとえれば、CPUひとつが地球全体くらいに相当します。地球 上の人間は全然統制がとれてなくて戦争ばかりしていますが、CPUは何十億 がみごとに調和して動作しています。(ま、それもファシズムみたいで怖い ですが...)


↑ Dropped down from digital episode.
(C)copyright ffortune.net 1995-2016 produced by ffortune and Lumi.
お問い合わせはこちらから