Transcript CS2-1

計算機システムⅡ
第1回
和田俊和
講義の概要
• コンピュータを,「バス」,「主記憶」,「CPU」などマクロな機能単位,
の組合わせとして理解することを目的としている.
1. まず,コンピュータの歴史を通じて,コンピュータがどのように誕
生し,高度化していったのかについて学ぶ(1−4).
2. 次に,CPUがALUと制御回路から成り立ち,命令によって主記憶
装置とのデータのやり取りが変わること,RISC,CISCなどの命令
セットアーキテクチャを学ぶ(5−8).
3. 最後に,計算の効率を向上させるためのパイプライン処理や並
列処理,実行順序の変更などについて学ぶ(9−14)
4. 最後に,現代的なアーキテクチャについて学んだ後試験を行う.
講義計画
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
コンピュータの歴史1(←本日)
コンピュータの歴史2
コンピュータの歴史3
演習問題
論理回路と記憶,計算:レジスタとALU
主記憶装置とALU,レジスタの制御
命令セットアーキテクチャ
演習問題
パイプライン処理
メモリ階層:キャッシュと仮想記憶
命令レベル並列処理
命令実行順序の変更
入出力と周辺装置:DMA,割り込み処理
演習問題
現代的な計算機アーキテクチャの解説と試験
•
教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテク
チャ,コロナ社
•
最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.
人はなぜ計算をしたのか?
約25000年前,後期旧石器時代
•
•
•
•
•
•
•
獲物の頭数,農産物の収穫量の勘定・計算
分配量の決定
租税の計算
川の氾濫と面積計算
航路の決定(天文学,暦)
数表(主に三角関数)
時間の見積もり
人はなぜ計算をすることを拒んだか?
• 「機械的」計算を人が行うのは
– 苦痛である
– 間違いが起きる
– 時間がかかる
• 「機械的」計算は機械に行わせるべきである.という
発想は自然.
– チャールズ・バベッジが「数表の危機」を解決しようとした.
– コンラッド・ツーゼが「30元連立方程式を解く機械を作ろ
う」と提案し,上司に拒まれ,会社を辞めた
加減算の道具:アバカス・そろばん
BC1000~500
• 加減算だけなら,石を並べればできる.しかし,大
きな数の加減算には多数の石が必要.
• ⇒位取り記法(10進数)の利用.さらに,5進数とも
組み合わせる.
• ⇒この結果,0-99の数を10個の石で表現できるよ
うになった.
• 問題点:各桁の計算と桁上がりは人が行う.
乗算の道具:ネピアの骨・算木
1550~1617
• 九九を書いた棒を用いて任意桁と一桁の数の乗
算を行う.桁上がりの加算は人間が行う.
479×8の例
ネピア:対数の発明者で
もある.
=
3
8
3
2
歯車を使った計算機:1
• レオナルドダビンチ(1452~1519)は歯車式計算機を
設計していない
• この歯車では計算できない.
歯車を使った計算機:2
• シッカートが最初.(原理はネピアの骨)
ケプラー:1571~1630
シッカート:1592~1635
この背面にネピアの骨を円柱上に記した棒が6
本入っている.加減算とメモリは独立
機械的な歯車計算機
• パスカル(1623~1662)のパスカリーヌ.税務官
吏の父を助けるために18歳の時に制作.加算専
用(減算は補数を使用.)
• ライプニッツ(1646~1716),5桁×12桁の16桁の
積,除算が計算できた.但し,積は加算,除算は
減算の繰り返し.
数表の危機19世紀
• 船の航路を決定するには天文観測に基づく自己
位置の決定が必要.
• この計算には,三角関数が用いられたが,当時
出版されていた数表には誤りが多数存在したた
め,正誤表が出版され,さらにその正誤表が出版
されるというほど混乱していた.
• 何が正しい値かを誰も把握できなくなり,これが
原因で船の座礁等の事故も起きた.
歯車を使った計算機:2
チャールズ・バベッジ(1791~1871)の夢
• 階差機関
– 数表の自動的計算と自動組版
• 解析機関とジャガード織機
– プログラムに従って計算する歯車計
算機
バベッジの構想1:階差機関
人手によるコピーの誤りも無くすため,活版印刷の原版を組むところまで,
全自動化を試みた.
バベッジの構想1:階差計算の原理
ほとんどの関数は,多項式に展開できる.
多項式関数の値を加算だけで求めることができる.
x
1
2
3
4
5
6
7
8
9
10
y
14
41
98
197
350
569
866
1253
1742
2345
第一階差 第二階差
27
57
99
153
219
297
387
489
603
30
42
54
66
78
90
102
114
第三階差
12
12
12
12
12
12
12
例
y  2x3  3x2  4x  5
階差機関は未完成に終わった
• 英国最高の機械工作技術者クレメントへの依頼
• 英国からの17000ポンドの政府助成金+バベッジの
ほぼ同額の拠出金(蒸気機関車は当時784ポンド.
約40台分以上)
• クレメントは不満,確執が起きた.
• 政府助成金の打ち切りとともに計画は中断し,部品
は溶かされた.
• 1/7モデルのみが完成
• その後,スウェーデンのシュウツ親子が完成
バベッジの構想2:解析機関
• パンチカードで指定した模様を織る
ジャーガード織機にヒントを得,プロ
グラムで指定した通りに計算を行う
計算機を作ろうとした.
• しかも,条件分岐等のジャンプ命令
まで備えていた.
⇒機械式ではあるものの,現代の計
算機と同じ構造
バベッジの構想2:解析機関
• 右は,解析機関の中心部「ミ
ル」
• 機械式メモリと,演算制御部
(CPU)が分離する構成(現在
の計算機とほぼ同じ)
最初にプログラムが動いた機械式計算機
コンラッド ・ツーゼ
1910~1995
• 新入社員として入社した会社で,計
算する機械を作るよう提案した.
• しかし,聞き入れてもらえず,退職し,
自宅でプログラムに従って動く機械
式計算機Z1を完成させる.
• その後演算部をリレー式にしたZ2,メ
モリ部もリレー式にしたZ3,条件分岐
やサブルーチンを入れたZ4他,200を
超える計算機を作った.
コンラッド ・ツーゼ
リレー
NOT回路
ばね
NAND回路
コイル
真空管
二極真空管
三極真空管
真空管とメモリドラム:ABCマシン
• 真空管をリレーの代わりに使う.⇒
高速化
• メモリ⇒コンデンサに蓄えられた電
荷を使う.リーク(電荷の漏れ)は再
チャージすることで補う(ダイナミッ
クメモリ)
ジョン アタナソフ
1903~1995
1939年10月
試作機完成
実用的プログラム内蔵型計算機
ASCC⇒ハーバード・マークI
• 3000個のリレーと2200個の歯車から成る
電気機械式計算機
• 紙テープからプログラムを読み込む汎用
計算機
• 条件分岐は後に組み込まれた.
• 15年間も使用された実用的計算機
ハワード・エイケン
1900~1973
1943年完成,1959年まで使用
「バグ」の正体
• ハーバードマークIがあるとき,停止した.
• 原因:蛾がリレーに挟まっていた.
• これ以来プログラムの間違いを「バグ(虫)」と呼
ぶようになった.
ENIACは最初の実用的電子計算機
• ゴールドスタイン将校が弾道計算用の機械を模索中,
電子計算機を作ろうとしていたモークリとエッカートに目
をつけた.
• 完成は終戦後1946年
ENIAC
• 真空管17468本リレー1500個を用いた計算機
• 10進数10桁の固定小数点による数値表現
• 一般数値記憶用メモリ20個,πやe,三角関数等の
定数記憶メモリが300個.
• 加減算200[μs],乗算2800[μs],除算24000[μs]
• プログラムは配線とスイッチで表現.条件分岐はな
い.
• 完成は第2次大戦後1946年.弾道計算には使われ
なかった.稼働期間は10年間
ENIACは最初の実用的電子計算機もどき
• モークリとエッカートは「電子的にかつディジタルに計
算を行う方法」について特許を持っていたが,スペリー
ランド社が買い取っていた.
• どの会社もスペリーランド社に特許使用料を支払って
いたが,ハネウェル社だけは払わなかった.
• スペリーランド社は,ハネウェル社を訴えたが,逆に,
当該特許は無効であるとハネウェルから訴えられた.
ENIAC裁判の結果
• 6年間に及ぶ裁判の結果,1973年「モークリとエッ
カートは自ら最初の電子計算機を発明したので
はなく,その基本原理はアタナソフのABCマシン
から受け継いだものである.」との判決が下り,特
許は無効となった.
• 実際に,1941年モークリはアタナソフを訪れ,ABC
マシンの原理を聞いていた!ついでにアタナソフ
に礼状まで送っていた.
• しかし,ABCマシンは最初の電子計算機とは呼べ
ない.(未完成であったため)
ENIACのプログラムは,ワイヤー
• ENIACにはプログラムはあったが,それらはすべ
て,ワイヤーの結線によって表わされていた.
• 簡単なプログラムを組むのにも1週間以上もか
かった.
• つまり,プログラムを電子的に表現するということ
はできていなかった.
プログラム内蔵式電子計算機へ
EDSACではない!1948年
• SSEM(Baby)が最初
• Manchester Mark1
• Ferranti Mark1
命令数が7個と少なく,メモ
リも非常に少ない(32語)
が,プログラムが動いた.
フレデリック・ウイリアムズ,
トム・キルバーンによる.
ウイリアムズ・キルバーン管がメモリとして使え
ることを確認するための装置?
EDVAC(1951)
• モークリとエッカートは,ENIACのワイヤーを用いたプログラミン
グは修正すべきであると考えていた.
• この二人が,プログラム内蔵型電子計算機を発案し,EDVACの
設計に取り組んだ.(EDVACの完成は1949年しかしトラブルが多
く1951年から稼働)
• しかし,ペンシルベニア大は,天才数学者として有名であった
フォン・ノイマンに「EDVACに関する最初の草稿」を発表させた
(1945年).
• この結果,プログラム内蔵式の計算機は「フォン・ノイマン型計
算機」と呼ばれるようになった.
• EDVACはこの草稿で有名になったが,歴史上は特に重要な計
算機ではない.
しかし,フォン・ノイマン型計算機は
フォン・ノイマンとは無関係である
• エッカートは,後に,
フォン・ノイマンのこ
とを「アイデア泥
棒」と呼んでいる.
• ノイマンはこのこと
に対して肯定も否
定もしていない.
EDVACとフォン・ノイマン
EDSAC(1949年)が実用的な本当の意味
での計算機
• プログラム内蔵型の計算機で,実用的に使えるもの
は,イギリス,ケンブリッジ大のEDSACが最初である.
(SSEMはあくまで実験機)
• 真空管3000本,メモリには水銀遅延管(水銀を充填し
た管の両端に水晶振動子を取り付け,増幅回路で繋
いだもの.)
• サブルーチンの本格的利用
「計算のための道具を作る」
という夢は果たされてしまった!
次に何が待ち受けていたのだろうか?
• 小型化?高速化?
• 製品化?
• 金儲け?
• 使いやすさ?
• 計算とはどういうことかを示す?
• 人と同等の知能を持つ機械の実現?
コンピュータの多面的発展
待ち受けていたもの
• 小型化?高速化?⇒トランジスタ⇒IC⇒LSI⇒…
• 製品化?⇒電卓,マイコン,ミニコン,メインフレーム
• 金儲け?
⇒ソフトウエア産業の勃興
• 使いやすさ?
⇒言語処理系,OS,UI,
• 計算とはどういうことかを示す? ⇒計算科学
• 人と同等の知能を持つ機械の実現? ⇒AI
• ...
時間内に提出: 下記について,
講義内容に基づいて答えなさい.
1. ある機械が,「コンピュータである」ための条件は何か?
1. 電子計算機とコンピュータの違いは何か?
次週の予告
• 第2次世界大戦中に開発され,戦争に用いられて
きた「電子計算機」コロッサスが存在していた.
• その存在や内容は近年まで明らかにされてこな
かった.
• どのような目的でコロッサスが作られ,歴史の闇
に葬り去られてきたかについて述べる.