コンピュータ,プロセッサ 計算機の構造(1): パソコンの外側 計算機の構造

計算機の構造 (1): パソコンの外側
ディスプレイ(外部出力装置) フロッピーディスク/
ハードディスク
(外部記憶装置)
コンピュータ,プロセッサ
• コンピュータ,プロセッサについて学ぶ.
穴埋めの穴も埋めた資料は,下記に置いた.
http://www-vlsi.es.kit.ac.jp/vlsi-master
キーボード/マウス(外部入力装置)
4-1
計算機の構造 (2): パソコンの内側 (マザーボード)
4-2
マザーボード上には?
• 多数の LSI(Large-Scale Integrated circuit, 大規模集積回路)
– マイクロプロセッサ (MPU: Micro Processing Unit, CPU:
Central Processing Unit)
– メインメモリ (中身は
RAM)
– 各種 ASIC(Aplication Specific IC: 専用 IC), チップセット (Intel 810, Intel 865PE..., P67 Express...)
– 外部接続端子: USB, SATA...
– 電源. 交流を
に変換. LSI などの電子部品はすべて
で動作する. さて何 V くらい?
– その他の電子部品. キャパシタ, 抵抗, コネクタ,
PCIソケット
CPUソケット
Intel 865PE
チップセット
メモリソケット
電源コネクタ
Serial ATAコネクタ
IDEコネクタ
4-3
4-4
計算機の歴史
機械式計算機
• Charles Babbage(1791-1871, UK)
– Analytical Engine, Difference Engine の設計 (1833)
– 織機にヒントを得た
自動計算
機. 当時の技術/資金では完成せず.
– ロンドン, シリコンバレーに現在の技術
で完成させた完動する機械
• Alan Turing (1912-1954, UK)
– Turing Machine(1936)
– 数学モデル (実際のものはない)
– 計算を機械的な手続きとして定義
– 有限制御部と無限記憶
電子計算機の誕生
• 真空管というアクティブ (能動) 素子の誕生 (1900 年頃) が契機
電子計算機 ENIAC(1946)
• Pennsylvania 大学
• J. Mauchly, J.P.Eckert
• 18,000 本の
• 加減算 200 マイクロ秒,乗算 2.8 ミリ秒
• プログラムは配線盤上の配線で与える.
Analytical Engine
http://www.infonet.co.jp/ueyama/ip/contents.html (計算機の
歴史)
Difference Engine (at Computer History Museum)
4-5
EDVAC
4-6
EDSAC (1949)
• Electronic Discrete Variable Automatic Computer
(電子式個別変数自動計算機)
• Pennsylvania 大学
• John von Neumann のメモよ
り作成され, 完成は 1951 年.
• プログラム内蔵方式. プログラ
ムをデータと同様にメモリに格
納して実行する.
• Electronic Delay Storage Automatic
Computer (電子式遅延記憶装置つき自動
計算機)
• Cambridge 大学(UK)
• 世界初のプログラム内蔵式計算機
• 記憶装置:水銀を用いた音響遅延線 (写真中
央と下)
• 演算装置:1 語 17 ビット/ 35 ビット, 加減
算器,乗算器,累算器,乗算レジスタなど
• 入力装置:穿孔テープ読み取り機,出力装置:
電動タイプライタ
4-7
4-8
IBM System360 (1965)
•
•
•
•
•
•
•
ビデオ鑑賞
Mainframe Computer(大型計算機) アーキテクチャの基本モデル
ソフトウェアに対するインターフェースの統一 (互換性)
互換性のある性能の異なる機種シリーズ
トランジスタと集積回路の採用 (1 チップではない)
byte と 32bit/word, 24bit アドレスのメモリ
言語 (Fortran など) のサポート
OS(
) を搭載
「電子立国日本の自叙伝」第 5 回 「8mm 角のコンピュータ」
• NHK 製作, 1991 年製作/放送 (20 年以上前).
• 放送当時は, 32bit プロセッサ (i386) の PC がようやく発売された
ころ.
• Intel 社による世界初のマイクロプロセッサの誕生の歴史を紹介して
いる.
• YouTube(一部), NHK(有料) にも動画あり.
4-9
4-10
ムーアの法則@ 1965 年と Intel 社のプロセッサ
最初のマイクロプロセッサ
1,000,000,000
❑ゲ䈲log䉴䉬䊷䊦
1 Billion
Transistors
100,000,000
Pentium® III
Pentium® II
Pentium® Pro
Pentium®
i486
Pentium4 䋵䋵䋰䋰ਁTr @2002
10,000,000
1,000,000
• 4004: 4 ビット, 1971 年, 12mm2,
トランジスタ, 108kHz.
10µm プロセス.
• 当時は IBM の Mainframe(大型コンピュータ) の全盛時代.
• 日本人技術者 嶋正利さんにより設計される. 日本の電卓メーカ (ビ
ジコン社) より Intel 社に出向し, 設計する.
4-11
i386
80286
100,000
10,000
8086
12500ਁTr @2004
Core2Duo 29100ਁTr@2006
Source: Intel
1,000
1975 1980 1985 1990 1995 2000 2005 2010
4-12
PC 向けのマイクロプロセッサ (1Core)
熱密度問題 1
Power density
Sun Surface
Power Density (W/cm2)
10000
• Pentium4: 32 ビット, 2004 年 112mm2, 1 億 2500 万トランジ
スタ, 3GHz. 90nm プロセス
• コア (独立のマイクロプロセッサ) が一つの CPU の最後の製品. 4GHz
は発熱の問題で,開発中止
Rocket
Nozzle
1000
Nuclear
Reactor
100
8086
10 4004
Hot Plate
P6
Pentium® proc
8008 8085
386
286
486
8080
1
1970
1980
1990
Year
2000
2010
Power density too high to keep junctions at low temp
Courtesy, Intel
4-13
熱密度問題 2
4-14
プロセッサの複数コア化
• 発熱などの問題から, クロックスピードは
GHz で頭打ち.
• 性能を上げるためと, LSI の面積を埋めるため,
コア化.
• Core2Duo:
コア内蔵. 一部 64 ビット化, 143mm2, 2 億
9100 万 Tr, 3GHz. 65nm プロセス. (2006/8)
• AMD Opetron: 4 コア内蔵. 283mm2. 4 億 6,300 万, 65nm プ
ロセス, 2.8GHz. (2007/9)
Core2Duo (Merom)
AMD Opteron(Barcelona)
4-15
4-16
Core i7 (Nehalem)
新しい構造のトランジスタ
• Intel 社のサーバ用プロセッサ. 最大 4 コアを集積
• 微細化に伴い,チャネル長が短くなり,短チャネル効果が大きくなっ
てきた.
• 45nm プロセス, 面積 263mm2, 7 億 3100 万個.
• 8MB の
短チャネル効果 (Short Channel Effect) ゲート長が短く,ゲー
トの支配力が弱まることにより,トランジスタの特性が悪くなる.
メモリを載せることにより, 高速化.
• メモリコントローラを集積化して, メモリとプロセッサ間の通信ボト
ルネックを解消.
core i7
• これに対して,主に 2 つの新しい構造トランジスタが実現されている.
SOI(Silicon on Insulator) トランジスタの下を BOX(埋め込み
酸化膜) 層とし,基板から流れこむ電流を抑える.BOX 層とトラ
ンジスタ層を薄くした Ultra Thin Body and BOX(UTBB)
,Silicon on Thin BOX (SOTB) などが IBM を中心として
開発されている.
FinFET (Trigate) トランジスタのゲートを 3 次元構造としたも
の.日本人が最初に提案したが,Intel 社が 22nm で実用化した.
2013 年に市販されている Intel 社のプロセッサはほとんどが,こ
の 22nm Trigate プロセスを用いている.
4-17
FinFET を使ったプロセッサ
新構造トランジスタの断面図
^
• 2014 年発表の Broadwell は,13 億トランジスタを 83mm2 のチッ
プに集積.
^
ၒ䉄ㄟ䉂㉄ൻ⤑ጀ
S
;KyጀͿ
䌓䌏䌉ጀ
ƵůŬ
• Intel 社は,22nm プロセスから FinFET(トライゲート) を採用.
䊃䊤䊮䉳䉴䉺㗔ၞ
'
'
ƵůŬ
• iPhone 用のプロセッサも,iPhone6S から,FinFET (韓国 Samsung の 14nm, 台湾 TSMC の 16nm) になった.
䊋䊦䉪㗔ၞ
^K䌉 ᭴ㅧ;ďͿ
䊋䊦䉪᭴ㅧ;ĂͿ
4-18
'
'
ͬ^
D
^
ƵůŬ
䋹䋰
ƵůŬ
䋹䋰 ϵϬᐲ࿁ォ
&/E&d;dƌŝŐĂƚĞͿ᭴ㅧ;ĐͿ
FinFET の電子顕微
Intel 社 14nm プロセスを使ったプロセッサ
鏡写真
(Broadwell)
4-19
4-20
2 つの iPhone6S 用プロセッサ
身近な計算機: PlayStation2
• TSMC と Samsung のプロセッサで,バッテリの持ちが違うと話題
に.
• 同じ仕様の他社製品を
と呼ぶ.かつて,NEC は
Intel から技術供与を受けて,8086 プロセッサを製造していたが,そ
の後,Intel 社の方針転換でダメに.
• 128 ビットの MIPS 互換プロセッサを搭載した高性
能計算機
• 心臓部は, SONY と東芝の共同開発
4-21
4-22
Play Station3/ CELL Broadband Engine
無線 LAN アクセスポイント
バッファロー WLA-G54
立派な計算機 (コンピュータ) です.
無線LANチップ
Broadcom社製
スイッチングハブ
Broadcom社製
Mini PCIスロット
CELL Broadband Engine
• SONY, 東芝, IBM 共同開発
• PlayStation3 に搭載
• 2 億 3400 万 Tr
• CPU+8IPU(コプロセッサ)
Play Station3
• 3.2GHz の CELL Broadband Engine 搭載
• 8IPU のうち一つは, 動かさ
ない.
確保の
ため
4-23
CPU(MIPS系)
Broadcom社製
SDRAM
Vanguard社製
フラッシュメモリ
STマイクロ社製
4-24
各種用語: 計算機, プロセッサ関係
CPU
Processing Unit, 中央演算装置. 計算機の心臓部
マイクロプロセッサ Micro (µ) Processor CPU を集積した LSI.
CPU と同義で使われることもある.
マイクロコンピュータ Micro Computer 「1 チップのマイクロプロ
セッサ」, メモリ, 周辺機器などからなる計算機
MPU Micro Processing Unit. Micro Processor とほぼ同義で使
われる.
MCU Micro
家電製品などの組み込み機器向け
の CPU,メモリ,周辺機器を内蔵した LSI.
ノイマン型コンピュータ von Neumann type Computer
ほとんどすべての計算機のとる基本的なアーキテクチャ
2 進数演算
現.
Execution 0 と 1 の 2 値で命令とデータを表
プログラム
stored program あらかじめ, プログラムをデー
タと同じように, メモリに格納しておき, メモリの格納順に実行する.
ENIAC では, プログラムは配線で与えられている. EDSAC ではじ
めてプログラム内蔵に.
4-25
4-26
マイクロコンピュータの簡単な構造
プロセッサが実行すること
メインメモリ
• メインメモリ内の命令列に従って, メインメモリの内容を書き換える.
• ディスプレイへの描画, ネットワーク上の通信なども同様 (メモリマッ
プド IO)
命令レジスタ
プログラム
カウンタ
アドレス
命令
デコーダ
メインメモリ
命令実行
ユニット
レジスタ
プログラム
カウンタ
命令レジスタ
命令
デコーダ
プログラムカウンタ (Program Counter) 命令を読み出すメモリの
を格納
命令デコーダ (Instruction Decoder) 命令の実行内容を解析する.
命令実行ユニット (Execution Unit) 解析された内容により命令を実
行.
レジスタ (Register)
規模で高速な記憶装置 (フリップフロップで
実現)
メインメモリ (Main Memory)
規模な記憶装置.
4-27
命令実行
ユニット
レジスタ
I/O装置(ディスプレイアダプタ、キーボードなど)
4-28
メインメモリ Main Memory
プログラムカウンタ Program Counter(PC)
• 情報の記憶を行なう. プログラムとデータを格納している.
• 揮発 (電源を切ると消える) メモリである
の場合は,
の場合もある.
で実現. 小容量
• 1 次元のアドレスを持つ. 32 ビットプロセッサの場合, 232=4 ×
GB までのメモリを持つことが可能. 32bit
210 × 210 × 210=
の Windows は,
GB 以上のメモリは認識しない.
• 1 アドレスは 1 バイト (8 ビット) 単位.
カウンタとは, 値を順次増やしていく回路のこと.
命令を格納しているメインメモリの
を保持する.
通常は命令実行後に次のメインメモリの
に遷移する.
条件分岐や, サブルーチン実行, 割り込みなどの場合には, 異なるア
ドレスに遷移する.
• パソコンをリセットした場合などは, PC の値は 0 に戻る. アドレス
0 から始まるプログラムはコンピュータをブートするための特殊なプ
ログラムが置かれている.
•
•
•
•
割り込み Interruption キーボードを叩いた場合やマウスを動かした
場合などの処理を行なうために, プロセッサが一時的に異なるプログ
ラムを実行すること. 実行後は元のプログラムに戻る.
4-29
命令デコーダ Instruction Decoder
命令実行ユニット Execution Unit
• メインメモリから読み出された命令列を解析して, 命令実行ユニット
に送る.
• 命令は通常 1 ワードからなる. 32 ビットのプロセッサでは 32 ビット.
• 命令は, どのような命令 (加算, 減算等) かと命令に与える
(オ
ペランド operand) からなる.
• オペランドとしては, メモリ番地, レジスタ番号, 即値などが与えら
れる.
31-16bit
何をするか
例
15-8bit
4-30
7-0bit
operand0 operand1
実行対象
• 命令デコーダで解析された命令にしたがって, 演算を実行する.
• 複雑な命令は, 回路面積が大きくなる. 必要な回路面積はおおよそ,
論理演算 < 加減算 < 乗算 < 除算.
• 算術演算を行なうための命令実行ユニットは, Arithmetic and Logic
Unit(
) と呼ばれる.
• 整数と浮動小数点では, 演算器の構造が異なる. 整数演算器の面積
浮動小数点演算器の面積.
• 簡単なマイクロプロセッサには乗除算機能, 浮動小数点演算器などが
搭載されないことがある.
• 実行結果が異常な場合は,
を発生させ, プログラムが停
止する. 0 で除算した場合は, Floating exception(Linux での例)
0xabcd
0xa0
0xb2
レジスタ同士を加算する [operand0]=[operand0]+[operand1]
a0レジスタの内容とb2レジスタの内容を加算して、a0レジスタに格納する
4-31
4-32
レジスタ Register
入出力装置 (I/O 装置)
プロセッサと外部世界を結ぶための装置. I(nput)/O(utput) 装置
• キャッシュレジスタ (Cash Register) のレジスタと同じ意味.
(Resistor)
とは異なる.
例をあげてみよう
• メモリは
規模な記憶装置. レジスタは
規模な記憶装置.
通常は D-FF(D 型フリップフロップ) から構成される.
• 小規模とすることで, 命令中のオペランド指定に必要なビット幅を短
くすることができる.
制御方法 通常はメモリのアド
• メモリは大規模なためアクセスするための速度が遅いが, レジスタは
レスの一部をハードウエア
高速である. プロセッサの 1 クロックサイクルで読み書き可能.
の制御のために用いる (メ
• レジスタファイル: レジスタの
モリマップド IO).
・サイズが大きい>=1kW
・アドレスのビット幅が大きい
・SRAM or DRAM
main memory
・サイズが小さい<=256W
・アドレスのビット幅が小さい
・SRAM or D-FF
Windows でのメモリマップド IO の例.
register
4-33
4-34
ファイル装置
• ファイルとは, プログラムが取り扱う一固まりのデータ.
FILE *f; // C 言語の例
f=fopen("test.txt","r");//test.txt を読出しモード ("r") で開
く
• ファイル装置は, ファイルを格納するための I/O 装置. 例: ハード
ディスク, フロッピーディスク, USB メモリ. 通常は
(電
源を切っても消えない)
• 通常, OS が制御する. メインメモリにロードするためのデータとプ
ログラムを格納.
• パソコンでは, ハードディスク. 携帯電話などの組み込み機器では,
メモリの場合もある. SSD (Solid State Drive) の
中身は
メモリ
• DOS: Disk(当時はフロッピー)
. 主にフ
ロッピーを制御するために, Bill Gates が開発 (MS-DOS, Windows の原型)
4-35
フォンノイマンボトルネック
メモリとプロセッサの間のデータのやり取りが遅くて, プロセッサの処理
能力が制限されること.
プロセッサ
フォンノイマンボトルネック
メモリ
フォンノイマン (John von Neumann) ハンガリーの数学者. 20 世
紀科学史における最重要人物の一人. 数学・物理学・工学・経済学・
計算機科学・気象学・心理学・政治学に影響を与えた。第二次世界大
戦中の原子爆弾開発や, その後の核政策への関与でも知られる. (出
典 Wikipedia)
4-36
von Neumann Bottle Neck 解消のために
キャッシュメモリ Cache Memory
メインメモリと CPU とのデータのやり取りを効率化するために様々な手
法が取られている.
DDR SDRAM
SRAM
main memory
2次キャッシュ
L2 Cache
CPU
1次キャッシュ
L1 Cache
メモリ自体の高速化 代表例は Rambus DRAM (RDRAM), XDR
DRAM (RDRAM の後継). RDRAM は, 当時主流であった SDRAM
(Synchronous DRAM) と異なり, クロックの立ち上がりと立ち下
がりの両方でデータを送る. 現在の DDR (Double Data Rate)
DRAM とほぼ同じ方式. XDR DRAM は RDRAM の後継で, PS3
に採用されている.
キャッシュメモリ Cache Memory メインメモリと CPU との間で一
時的にデータを貯めて (Cache) おく. メインメモリより容量が小さ
く, 速度が速い. 通常は
で実現されている. 最近の CPU
では, 1-3 次キャッシュが同じチップ上に集積されていることが多い.
16kB
256kB
on-die cache
マイクロプロセッサ(一つの集積回路)
256MB
小
容量
大
速
速度
遅
4-37
4-38
主な ISA
命令セットアーキテクチャ
Instruction Set Architecture (ISA)
x86, x64: インテル, AMD 社が主に製造.普通のパソコン (Windows,
Mac),PS4,Xbox One
命令セット プロセッサで実行される命令の一覧. 計算機に読み込まれる
データはすべて, 01 の 2 進数. ISA により, その 2 進数列に意味が与
えられる.
SPARC: Sun マイクロシステムズ社 (現 Oracle) の CPU. 京にも.
• プロセッサの違いは, ほとんどの場合 ISA の違いである. ISA が同じ
でも, 内部構造 (マイクロアーキテクチャ, micro architecture) は,
異なる場合もある. 同じプログラムコードを
ISA では動作
させられない.
MIPS: スタンフォード大 Hennessy & Patterson が考案.PS2, PSP.
Power: Apple 社 Mac(2005 年まで), ゲーム機 (Wii, Wii U, PS3,
Xbox360)
SH: ルネサスエレクトロニクス (元日立) 製, 携帯電話, 一昔前のゲーム
(Sega Saturn)
ARM: イギリスの会社 (ARM 社) がライセンスして各社が設計,製造.
各種スマホ, iPad, iPhone, 任天堂 DS, 携帯電話.スパコンにも使
われようとしている.
x86 は, i486, Pentium, Core シリーズで,内部構造が大きく異なる.
4-39
4-40
マイクロプロセッサのビット幅
命令形式
Intel i4004
4 ビット
i8086
8 ビット (x86)
i80286
16 ビット (x86)
i80386, i80486, Pentium
32 ビット (x86)
Intel Core i7
64 ビット (x64)
Intel Itanium 64 ビット (IA-64)
• 命令=演算の種類と, 演算に与えるデータを指定する部分からなる.
2 進数のデータ
• アセンブラ (assembler) は, 人間が理解しやすいように, 命令列を文
字列に変換したもの
• C 言語をコンパイルしてできるバイナリコード中に格納されている.
• n ビットのプロセッサは, n ビットまでのデータ処理が得意. それ以
上のビット幅の処理も一部可能であるが, 性能が落ちる.
• 4bit で処理するという画期的なアイディアで一つの LSI に集積化さ
れたマイクロプロセッサも, 集積回路技術の進歩により, ビット幅を
増やしていき, 現在は通常 32 ビット, 一部 64 ビット命令を持つプロ
セッサが主流に.
• 32 ビットプロセッサの命令長は通常 32 ビット. 例外もある. SH は
16 ビット固定の ISA, ARM は 16 ビットと 32 ビットの両方の ISA
を持つ.
4-41
4-42
命令形式 (2)
オペランドの指定対象
命令コード operation code , 命令そのもの. add, sub, xor, load,
store
メインメモリ メモリはサイズが大きいので, アドレスを指定するのに多
ビット必要.
レジスタ 高速に複数のレジスタに同時にアクセス可能. レジスタの数が
増えると, オペランドのビット幅が増える.
オペランド operand , 命令に与えるデータを指定. データそのもの (
), レジスタのアドレス, メモリのアドレスなど.
ソース (source, SRC) オペランド 命令実行によって処理される
側
デスティネーション (destination, DST) オペランド 命令実行
によって生ずる結果を格納する側
OPERATION
SRC0
SRC1
DST
代表的なプロセッサのレジスタ数
x86
8個
MIPS
16 個 (R0 は 0 レジスタ)
SPARC
32 個
PowerPC
32 個
RISC プロセッサはレジスタ数が多く, CISC は少ない. Pentium 以降
の x86 プロセッサは,
命令を内部で
命令に変換して
高速化
4-43
4-44
基本命令セット
主な命令の種類
分類
データ転送
データ命令 算術演算, 論理演算, ビット列操作
シフト 算術シフト, 論理シフト, 循環シフト
転送 ロード (メモリ to レジスタ), ストア (レジスタ to メモリ)
RISC プロセッサで多用
整数演算
制御命令 無条件分岐, 条件分岐 (if 文), サブルーチン分岐ジャンプして
元のところに戻る.
論理演算
特殊命令 IO 制御, 割り込み, NOP(No Operation), HALT(CPU を
完全に停止する). NOP は命令の実行待ち等, 通常のプログラムで
も良く使われる.
制御
略称
LOAD
STORE
MOV
ADD(+), SUB(−)
MUL(∗), DIV(/)
COMP(>, <)
OR(|), AND(&), XOR(∧)
SH[RL](<<, >>)
SA[RL]
RO[RL]
JMP
JPcc
INT
CALL
RET
実行内容
メモリ内容をレジスタに転送
レジスタの内容をメモリに転送
レジスタ間で値を転送
レジスタ/メモリ間の加算
乗除算
比較して結果を特殊レジスタに格納
論理和, 論理積, 排他的論理和
1 ビット論理 [右左] シフト
1 ビット算術 [右左] シフト
1 ビット循環 [右左] シフト
無条件分岐
cc で指定した条件が真なら分岐
割り込み発生
サブルーチンコール
サブルーチンコールからの復帰
4-45
基本データ型
4-46
固定小数点表現と浮動小数点表現
すべて 2 進数で表現される. 人間が見るときの型
数値 整数 (integer) C では, int. 有限ビット幅の範囲の小数も表すこ
とができる (固定小数点)
実数 (real) C では float, double. float と double は精度が異な
る. (浮動小数点)
固定小数点 (Fixed Point Number) k ビットの 2 進数を n ビットの
整数部と, m ビットの小数部に分けて表現する (k = n + m). 整数
表現は, 固定小数点表現で m = 0 の場合. 表せる数の範囲が狭い. n
と m のビット幅は可変
浮動小数点 (Floating Point Number) 数を仮数部 m(p ビット) と
指数部 e(q ビット) に分けて表現. k = p + q
m × 2e
論理値 (boolean) C++では, bool. 真か偽か?
2 進コード binary code: 変換することで本来の形式になる.
p と q のビット幅の振り分け方には, 標準がある.
pビット
仮数部m
4-47
qビット
指数部e
4-48
プロセッサをどうやって動かす?
浮動小数点を格納する形式
m = S(符号)M, e = E
1
8
S
E 指数部
IEEE/ANSI 形式
M
プロセッサを動かしているものは?
23
オペレーティングシステム: OS, Operating System 人間とコンピ
ュータ間のインタフェース. OS 自身もプログラムのひとつ.
仮数部
仮数部の符号
E 指数部に 127 を加えて, 正数化 (バイアス表現)
M 正規化 (2 進数で 1 以上 2 未満の数) した整数部は常に (1)2 であるの
で, 整数部を省略して絶対値を格納 (けち表現, 隠しビット).
S 仮数部の符号
ソートしやすいように定められている. S の値で条件分岐して, あとは,
E,M をまとめて整数と見て大小比較すれば良い.
タスク (プロセス) 計算機の中で動くプログラムの単位. OS により実行
が制御される.
Windows でのタスクの表示方法 Ctrl+Alt+Del でタスク マネージャーが起動する.
プロセスタブをクリックすると現在実行中のタスク () プロセス) が表示される. 「プ
ロセスの終了」を実行することにより, 任意のプロセスを終了させることができる.
UNIX(Linux, Mac OS X) でのタスクの表示方法 シェル (ターミナル) で, top を
実行すると, タスクマネージャのプロセスタブと同様の表示が見られる. kill コマ
ンドにより, 任意のプロセスを終了させることができる.
4-49
プログラムの記述方法
アセンブラ プロセッサのプログラムコード (
やすいように記述. ISA に依存する.
4-50
実行方法
) を人間のわかり
コンパイル あらかじめ, 機械語に変換しておく. C 言語. コンパイラ:
変換のためのプログラム.
# main.c をコンパイルして実行
% gcc -o main.exe main.c
% ./main.exe
#アセンブラの例
add $t0, $s1, $s2 # $t0=g+h
add $t1, $s3, $s4 # $t1=i+j
高級言語 プロセッサに依存せず, かつ人間が記述しやすい言語を定義し
て, 機械語に変換する. ハードウエアに直接アクセスする命令を除い
て, ISA にほとんど依存しない.
インタプリト その都度プログラムを読み込んで機械語に変換し, 実行す
る. BASIC. インタプリタ: 変換して実行するプログラム
# main.java を java インタプリタで実行
% java main.java
/*C 言語の例*/
main(){
int a,b=3,c=10;
c=a+b;}
Mac OS-X は, C 言語で記述されている. 2006 に行われた Power
PC(IBM 製) から x86(Intel 製) への CPU の置き換えで書き換えたのは
せいぜい数十行.
4-51
インタプリト型の言語でも, 最近は実行前にコンパイルして実行する
ものが多い. インタプリタはプログラムを部分的に順番に読み機械
語に変換するので,
容量が少なくてすむため,古い
計算機ではインタプリト型が使用されていた.
4-52
CISC と RISC
命令実行サイクル (CISC マシン)
細かい定義はいろいろあるが, 命令セットアーキテクチャで言うと,
命令フェッチ (Instruction Fetch, IF) メモリより命令取り出し
命令デコード (Instrunction Decode ID) 命令解析
CISC Complex Instruction-Set Computer, メモリを直接演算の
オペランドとして使用できる.
RISC Reduced Instruction-Set Computer, 演算のオペランドと
して使用できるのは,
のみ.
がたくさん
必要だが,命令の種類が減らせる.
• RISC 型計算機では, ハードウエアが簡単になり,
をとれるため,クロック周波数があげやすく, 処理速度が上がる.
• CISC 型計算機は, メモリ/レジスタのハードウエア単価が高かった
時代のアーキテクチャである.
• RISC は CISC より多くの
と
が必要.
オペランドフェッチ (Operand Fetch, OF) 命令に使用するデータ
を取得.
実行 (Execution, EX) 実行
結果格納 (Writeback, WB) 実行結果を格納.
次アドレス決定 通常は次アドレス. 分岐命令では, PC に新しいアドレ
スを格納.
CISC プロセッサは, オペランドや命令により, オペランドフェッチ, 実
行, 結果格納に必要なクロック数が変わる.
4-53
命令実行サイクル (RISC マシン)
4-54
RISC プロセッサの 5 段パイプラインステージ
命令フェッチ (Instruction Fetch, IF) メモリより命令取り出し
命令デコード, レジスタフェッチ (Instrunction Decode ID) 命令解
析とレジスタから値を読み出す
実行 (Execution, EX) 実行して, レジスタに値を格納. 分岐の場合
は PC 書き換え
メモリアクセス (Memory access, MEM)
書込 (WriteBack, WB) メモリからのデータをレジスタに書き込む
命令1
命令2
命令3
命令4
IF
ID
EX MEM WB
IF
ID
EX MEM WB
IF
ID
EX MEM WB
IF
ID
EX MEM WB
RISC プロセッサは, オペランドや命令内容によらず一定のクロック数で
実行できるため, 各実行サイクルをパイプライン化することができる.
1クロックサイクル
4-55
4-56
CISC
RISC
• 速度低下の原因であったメモリを演算処理から切り放す.
• CPU の初期段階の構造は, すべて CISC.
• 演算命令はレジスタのみをオペランドとして指定可能.
• CISC は, 少ないメモリ, レジスタ数で実行できる.
• 命令実行ステージをパイプライン化して, 高速化
• 多機能な命令が多数存在し, 人間が機械語でプログラムしやすい.
• 高級言語の登場により, 複雑な命令が使われにくくなってきた.
• 命令によって必要なクロック数が異なるため, パイプライン化が難し
く, 速度向上が難しくなってきた.
• レジスタを多数おき, メモリへのアクセス数を減らす.
• 命令が少ないので, 同じことを実行する場合の命令列は長くなる. メ
モリがたくさん必要.
• 実行プログラムは高級言語により記述し, コンパイラにより機械語に
変換する.
4-57
レポート課題 (1)
4-58
レポート課題 (2)
パソコン全盛の時代においての覇者であった Intel 社の x86 ISA を有す
るプロセッサのシェアが高かった.現在のスマホ (Smart Phone) 全盛
の時代において,ARM 社のプロセッサ (ARM) が急激そのシェアを伸ば
している.Intel のプロセッサは,スマホでシェアを伸ばせていない.こ
の事実から次のことを調査せよ.
• インテル社のプロセッサがスマホでほとんど使われていない.一方,
ARM 社のプロセッサはパソコンではほとんど使われていない.そ
の理由を述べよ.
• インテル社は自社の工場でプロセッサを生産している.一方,ARM
社は工場を持たず,プロセッサの IP を各社に売りそのライセンス料
で収入を得ている.両者のビジネスモデルの利点と欠点をそれぞれ列
挙せよ.
4-59
1. スマートフォンは,大きく iPhone と iPhone 以外に分類される.
• iPhone 以外のほとんどのスマホに搭載されている OS は何か.ま
たどこが開発しているか?
• この OS のライセンス料は無料である.開発会社はどのようにし
て収入を得ているのか?
• iPhone は,OS 自体を Apple 社が開発している.一方,もう一方
のスマホは OS の開発とスマホ (ハードウエア) の開発は別々に行
われている.両者の利点と欠点を述べよ.
• 日本においては,iPhone のシェアは約 60%と諸外国と比べて異
常に高い.この理由を考えよ.
2. ビデオに出てきたキーワードをいくつか挙げ,感想を書け.
4-60