Download presentation
Presentation is loading. Please wait.
1
テープ(メモリ)と状態で何をするか決める
最小限のコンピュータ チューリングマシン テープ(メモリ)を読んで テープを進める/戻す テープに文字を書き込む 状態を変える オルゴールは繰り返しはできない テープ(メモリ)と状態で何をするか決める
2
普通のコンピュータの構成 PCの構成 制御マイコンの構成 CPU メモリ ビデオメモリ GPU USB ディスプレイ キーボード マウス
ポテンショメータ A/Dコンバータ CPU メモリ アナログモータドライバ D/Aコンバータ スイッチ/ソレノイド パラレルI/O エンコーダ PWMモータドライバ カウンタ
3
CPUの仕組み デジタル回路 CPU メモリ 入力電圧,出力電圧が0Vか電源電圧 (5Vや3.3Vが多い)だけをとる回路 組み合わせ回路
順序回路 CPU メモリ
4
組み合わせ回路の構成要素 NOT AND 回路記号 CMOS回路による実現例 0V +5V A Y Y=A +5V A Y A B Y
P MOS FET(VSG <-2.5VでON) N MOS FET(VSG >2.5VでON) G S D A Y Y=A A Y 1 +5V A Y A B Y Y=AB A B Y 1 B 0V
5
組み合わせ回路の構成要素 OR +5V A A Y B Y Y=A+B A B Y 1 B 0V
6
組み合わせ回路 NOT AND ORで,何でも作れる Y=AB+CDE A B C D E Y A B C D E Y
A B C D E Y Y A B C D E
7
論理代数 変数は,1か0のどちらか ・は and +は or は否定(逆) Y=AB+CDE
1・1=1, 1・0=0, 0・1=0, 0・0=0 +は or 0+0=0, 1+0=1, 0+1=1, 1+1=1 は否定(逆) 0=1, 1=0 Y=AB+CDE
8
足し算の回路 デジタル回路で整数を表す A1 A2 B1 B2 Y1 Y2 Y3 y=a+b (a,bは0~3 yは0~6をとる)
整数aの値をA1とA2の電圧で表す y Y3 Y2 Y1 a A2 A1 b B2 B1 a A2 A1 b B2 B1 y Y3 Y2 Y1 a A2 A1 b B2 B1 y Y3 Y2 Y1 2進数になってる
9
2進数 10進数 0,1,2,3,4,5,6,7,8,9 の10文字と桁で整数を表記 1, 3, 10 2進数 0,1の2文字と桁で整数を表記 1, 11, 1010 10の位 1の位 2の位 1の位 4の位 8の位
10
組み合わせ回路のまとめ 入力電圧を与えると対応した出力が得られる 整数を電圧の組み合わせで表せる 入力と出力の表が作れる.
どんな表でも回路で実現できる. 整数を電圧の組み合わせで表せる 2進数の一つの桁を1つの信号で表す 信号の数を増やせば,大きな整数も表せる 足し算などの計算も,組み合わせ回路で実現できる
11
順序回路の構成要素 フリップフロップ(レジスタ) S R Q ? 0 1 記憶 S R Q =
12
クロック 順序回路はクロックに同期して動いている。 例えば、 クロックが1のときに入力や前状態を読み込み、
0 順序回路はクロックに同期して動いている。 例えば、 クロックが1のときに入力や前状態を読み込み、 クロックが0のときに一斉に次状態へ遷移する。
13
エッジトリガのフリップフロップ Q Q Clock Clock D D Q D Q CLK Q 11000 10111 11101
01010 Clock D D 01111 10000 Q
14
順序回路 クロックが入るたびに, フリップフロップの状態 (Qの値)が変わる 組み合わせ回路を変えると, いろいろなものが作れる 4
D1 Q1 組み合わ せ回路 CLK D2 Q2 CLK D3 Q3 CLK 4 D4 Q4 CLK 4つのレジスタ 4ビット のレジスタ 組み合わせ 回路 4bit(ビット)のレジスタ クロック
15
メモリとCPU メモリ CPUとメモリ アドレス(レジスタの選択) Read 32ビット のレジスタ Write 32ビット のレジスタ
組み合わ せ回路 データ(値の出し入れ) レジスタ アドレス メモリ データ レジスタ (カウンタ) 組み合わせ回路 レジスタ レジスタ レジスタ レジスタ
16
CPUの動作 CPUの動作例 0: レジスタPCの値をひとつ進める
メモリ 組み合わせ回路 レジスタ (カウンタ) レジスタ(計算用 r0) アドレス データ レジスタ(IR) レジスタ(PC) 0: レジスタPCの値をひとつ進める 1: メモリの(レジスタPCの値のアドレス)からプログラムを読みだして,レジスタIRに読みだす. 2: メモリのデータを汎用レジスタに読みだす.動作(どこからどこへ)はIRの値による. 3: 組み合わせ回路がいくつかのレジスタの値を演算(+-*/など)して, 結果を別のレジスタに入れる. 動作(演算の種類やレジスタ)はIRの値による. 4: メモリにレジスタ(計算用)の値を書き込む.動作(度のレジスタをどこへ)はIRによる. レジスタPC:プログラムカウンタ レジスタIR:インストラクション(命令)レジスタ IRに読みだすメモリ上のデータをプログラムと呼ぶ カウンタの値
17
CPUができること メモリ中のプログラムに従って メモリを書き換えることしかできない? メモリ中のデータを計算して書き換える
プログラムの別の場所に移動する (PCに値を書き込んで実現) 計算結果に応じて移動先を決める (計算結果をPCに書き込む...など) メモリを書き換えることしかできない?
18
CPUとインタフェース メモリ ディスプレイ ビデオメモリ GPU CPU パラレルI/O シリアルI/O メモリの代わりにいろいろ付ける
アドレス CPU メモリ データ アドレス ビデオメモリ GPU ディスプレイ データ チップ セレクト パラレルI/O データ シリアルI/O データ メモリの代わりにいろいろ付ける D/A データ A/D データ カウンタ/PWM データ
19
プログラムとは コンピュータの動作を決める手順書
20
プログラム レジスタ(IR)に入れる値の並び メモリに並べておく 普段は順番に読みだす 時々,戻ったり,飛ばしたりもする
組み合わせ回路 レジスタ (カウンタ) レジスタ(計算用) アドレス データ レジスタ(IR) レジスタ(PC) レジスタ(IR)に入れる値の並び メモリに並べておく 普段は順番に読みだす 時々,戻ったり,飛ばしたりもする 0: レジスタPCの値をひとつ進める 1: メモリの(レジスタPCの値のアドレス)からプログラムを読みだして,レジスタIRに読みだす. 2: メモリのデータを汎用レジスタに読みだす.動作(どこからどこへ)はIRの値による. 3: 組み合わせ回路がいくつかのレジスタの値を演算(+-*/など)して, 結果を別のレジスタに入れる. 動作(演算の種類やレジスタ)はIRの値による. 4: メモリにレジスタ(計算用)の値を書き込む.動作(どのレジスタをどこへ)はIRによる.
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.