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