加算標準形

Download Report

Transcript 加算標準形

第7章 計算の機構
コンピュータの基本構成
CPU
アセンブリ言語
論理演算、MIL記法
半加算器、全加算器
1
計算の実現機構
• プログラム内蔵方式(フォンノイマン型コンピュータ)
– メモリ上にデータとプログラムを保持
– 万能チューリング機械(6.2.1項)と同様に他の計算機を
模倣できる
⇔ 最も初期のコンピュータ(ENIAC,1946)はプログラムを配
線していた
2
パソコンの歴史
1970年アラン・ケイ「パーソナルコンピュータ」を提唱。「コン
ピュータ・リテラシ」も彼の造語。ダイナブックを具現化。ハー
ドウェア Alto, 暫定的ソフト Smalltalk .
スティーブ・ジョブズ Lisa, Macintosh へ
1976年 Apple I、 翌年 Apple II 大成功を収める。
1970年代後半~80年台前半 多くの非互換機メーカーが競合
1981年 IBM PC 16ビットコンピュータ
PC/AT 互換機が業界標準、アップルは非互換機路線を堅持
2004年 IBM はパーソナルコンピュータ事業を中国のレノボ・グ
ループに売却。ハードウエアのオープンアーキテクチャ化を
大きな要因として繁栄したPC/AT互換機であったが、最終的
にはその互換機によって市場から撤退することとなった。
3
日本のパソコンの歴史
「国産マイコン」の最初の製品は、1976年日本電気 (NEC) より
発売されたTK-80とされる。
その後 8ビットマイコン・BASICと群雄割拠の時代
1982年 16ビットCPUを採用した「PC-9800シリーズ」が発売。
その後はMS-DOSを採用したPC-9800シリーズの独走態勢
となった。
Macintoshは、漢字Talk7が発売された頃から、ハードウェアの
値下げと日本語処理機能の充実により、シェアを伸ばして
いった。
1995年にGUIを大改良したWindows 95の発売が開始される
と、98互換機のエプソンもPC/AT互換機に転換し、国内独自
パソコンの歴史は完全にピリオドが打たれた。
4
計算機の基本構成
(中央演算処理装置)
5
写真で見るマザーボード
6
アプリケーションソフトの起動と終了
1. アプリケーションソフトの起動
2. データファイルの読み込み
CPU
3. ソフトの作業
中央演算
処理装置
4. データファイルの保存(Save)
5. ソフトの終了
バスライン
ソフト
ソフト
データ
データ
データ
データ
外部メモリ
(ハードディスク)
メインメモリ
(RAM)
7
CPU
制御部
デコーダ
CRT,キーボード、
マウス、プリンタ
コントローラ
入出力装置
プログラム
カウンタ
入出力バスライン
加算器
演算部
32 ビット
レジスタ
RAM
ハード
ディスク
メインメ
モリ
外部記憶
装置
8
演算部
加算器を用いてデータの四則演算、比較、論理演算を行う。
加算器とビットのシフトで、かけ算を行う。
110101
×)
1101
110101
110101
110101
1010110001
引き算は補数表現を用いる。
割り算は、引き算とシフトで行う。
プログラムカウンタ
今何番地の命令を実行しているのか、次に何番地の命令を実行すれ
ばよいかを CPU に示す。
9
制御部
デコーダ
メモリから読み出された2進数の命令をコントローラに指示を出
す。
コントローラ デコーダからの命令とクロック信号などのタイミング信号とを
複合させて、演算器やレジスタなどを動作させる制御信号を発生する。
レジスタ
CPU の中のメモリ。演算のためのデータや演算結果を一時的に保存する。
その内訳は
アキュムレータ
演算の結果を保持する。
カウントレジスタ
データレジスタ
転送や繰り返しの回数を勘定する。
メモリから読み出されたデータを一時的に保管する。
セグメントレジスタ
メモリの番地を指定する。
フラグレジスタ 各種状態を表示する。「計算結果が正か負か」「計算結果
が桁あふれしていないか」などの状態を示す。
10
主記憶装置(メモリ)
• メモリとは
– データの読み書きが可能な半導体メモリ
– 機械語命令とデータを格納する
• 1Kbyte のメモリのイメージ
アドレス
0000000000
0000000001
0000000010
:
1111111110
1111111111
メモリの内容
1バイトのデータ
1バイトのデータ
1バイトのデータ
:
1バイトのデータ
1バイトのデータ
1フロアに1バイト(8
ビット)のデータが格納
された1024階建てのビ
ルディング
11
アセンブリ言語命令の例
種類
内容
データ転送命令 load A
意味
store A
アドレスAのデータを演算レジスタ(AC)
に読み込む
ACのデータをアドレスAに書き込む
計算命令
add A
subtract A
アドレスAのデータをACの値に加える
アドレスAのデータをACの値から引く
分岐命令
jump A
jumpzero A
アドレスAにプログラムの実行を移す
ACのデータが0の場合,アドレスAにプ
ログラムの実行を移す
write
halt
ACのデータを出力する
プログラムの実行を停止する
その他
12
1から10までの和のプログラム
アドレ
ス
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
2001
2002
2003
命令
load 2001
add 2002
store 2001
load 2002
subtract 2003
store 2002
jumpzero 1009
jump 1001
load 2001
write
halt
0
10
1
意味
AC ← 2001
AC ← AC + 2002
2001 ← AC
AC ← 2002
AC ← AC - 2003
2002 ← AC
条件分岐(ジャンプ)
無条件ジャンプ
AC ← 2001
結果の出力
プログラム停止
変数(結果)
変数( i の初期値)
定数
高水準言語
sum ← sum+1
i←i-1
while i ≠ 0
write(sum)
sum ← 0
i ← 10
1
13
論理変数と論理演算の真理値表
x y
NOT(x)
x
AND(x,y)
OR(x,y)
x y
x y
NAND(x,y)
NOR(x,y)
 (x y)
 (x y)
XOR(x,y)
1 1 0
1
1
0
0
0
1 0 0
0
1
1
0
1
0 1 1
0
1
1
0
1
0 0 1
0
0
1
1
0
・ドモルガンの法則、分配則が成り立つ。
14
MIL記法
• 基本的な論理演算を以下の基本素子で表現
• ○は否定
NOT を表す。
15
論理演算の書き方
論理式
ブール代数
x
• NOT(x)
x y
• AND(x,y)
x y
• NAND(x,y)
x y
• OR(x,y)
x y
• NOR(x,y)
x y
• XOR(x,y)
x y
• EQ(x,y)
MIL記法
16
•論理演算を組み合わせ回路として実現する
ことによって、加算機、フリップフロップなどが
構成できる。(テキスト p.164, p.170-171.)
•論理演算は、論理変数と論理式によって与
えられる。
•半導体によって作られる基本素子は、NAND
もしくは NOR である。それを組み合わせてほ
かの AND, OR, NOT などの論理素子を構成
する。
•(NAND は完備生を持つ)
17
NAND 素子からほかの論理素子を作る
x
y
x・y AND(x,y)
x
x+y OR(x,y)
y
18
NANDゲートでXORを作る
x
XOR(x,y)
y
19
XORの標準形による表現
• ブール代数によるXORの表現
– 加算標準形
( x1  x2 )  ( x1  x2 )
– 乗算標準形
x1  x2  x1  x2
展開すると同じになる
• MIL記法によるXORの表現
加算標準形
乗算標準形
20
論理式(論理演算) Boole代数式
pq
pq
pq
pq
p
p
Boole代数の演算
1+1=1,
1・1=1
p+1=1+p=1, p・1=1・p=p,
1+0=1,
1・0=0
p+0=0+p=p, p・0=0・p=0,
0+1=1,
0・1=0
p+p=p,
p+p=1,
0+0=0,
0・0=0
p・p=p,
p・p=0,
1=0,
0=1.
21
再簡(minimal)加算標準形
命題1
A  A B  A
命題2
A p  B  p  A p  B  p  A B
例
E  x y z  x z  x y z  x y z  x y z
 x yz  xz  x yz  x yz
 x  y  ( z  z)  x  z  x  y  z
 x y  xz  x yz
 x y  xz  x yz  x y
 x y  xz  x y
( x  y  x  z  x  y  y  z )
(再簡加算標準形)
22
• 基本積 P が E の主項であるとは、E+P=E
かつ P の真部分積がその性質を持たないこ
と。
• 定理 任意のブール式に命題 1, 2 の変形を
適用すると有限ステップで終了し、かつ E は
E の主項の和になっている。
23
(A) 半加算器
+)
cout
x
y
s
x
y
0
0
0 0
0
1
0
1
1
0
0
1
1
1
1
0
cout
(B) 1ビット全加算器
c_in 下からの繰り
x
上がり
+)
y
cout s
s
上 下
の の
桁 桁
24
(A) 半加算器の実現
入力: x, y
出力: s(和), cout(桁上げ)
• 真理値表
• ブール代数 ・ 論理式
s  x  y  XOR( x, y )
x
y
0
0
0 0
0
1
0
1
1
0
0
1
1
1
1
0
cout
s
上 下
の の
桁 桁
cout  x  y  AND( x, y )
• MIL記法
25
(B)1ビット全加算器
s  x  y  cin
下からの桁上げ入力cinも考慮
する
cout  x  y  ( x  y)  cin

1ビット全加算器
26
オペレーティングシステム(OS)
• オペレーティングシステム(OS)の特徴
– 基本ソフトウェアとも呼ばれる
– コンピュータの起動と同時に実行される
– 複数の人間によるコンピュータの効率的な
利用をサポートする
– コンピュータの資源を管理する
• OSとアプリケーション
– OSの例:Mac OS X, Windows XP
– アプリケーションの例:Safari(ウェブブラウザ),
Excel(表計算)
27
OSの基本機能
• プロセス管理
– 起動,終了,CPUによる実行時間の割当て
• メモリ管理
– プロセスへのメモリ割当て,解放
• 入出力管理
– プロセスと周辺装置の仲介
• ファイル管理
– ファイルの作成,保護,消去と階層的な管理機構
• ユーザ管理
– プロセスやファイルを利用者ごとに一定の制限のもとで保護
28