• Tidak ada hasil yang ditemukan

計算機が実現すべきこと • データの保持・書込・読出 −→ 順序回路

N/A
N/A
Protected

Academic year: 2024

Membagikan "計算機が実現すべきこと • データの保持・書込・読出 −→ 順序回路"

Copied!
42
0
0

Teks penuh

(1)

計算機が実現すべきこと

データの保持・書込・読出 −→ 順序回路

データの処理(演算) −→ 組合せ回路

(データの入出力)

実行の制御

? プログラムの読出

? 順次実行

? 条件分岐

(2)

データの保持・書込・読出

データの保持: 記憶装置(memory) D-フリップフロップを必要なだけ並べる その中の

どれを読み出すか

どれに書き込むか

−→ 番地(address)で管理

(3)

データの読出し address

0 1 2 3 memory

=D-flipflop B0

B1

B2 B3

(4)

データの読出し: 1 番地のデータを読出し address

0 1 2 3 memory

=D-flipflop B0

B1

B2 B3

0 1

(5)

データの書込み address

0 1 2 3 memory

=D-flipflop B0

B1

B2

B3

D T T T T

D D D

D

(6)

データの保持・書込・読出

実際には、何bitかで一まとまりとして、

データの読み書き・演算等の処理を行なう

−→ 1 語(word) (: 1 word = 8 bit

= 8 つを並列に並べておく)

−→ ○○bit CPU

(一度に処理できるデータの大きさを表す)

(7)

プログラム内蔵方式(von Neumann)

プログラム・データを共にメモリ上に置く

−→ 主記憶装置

実行の流れ: 以下を繰り返す

プログラムを一命令づつ読み出す

命令の実行

(8)

説明用の簡易モデル

Instruction Register

Accumulator main memory 00000= 0

00001= 1 00010= 2 11111=31

Address Decoder 5bit 3bit

Instruction Decoder

add, subtract Arithmetic Unit

8FA add, subtract load,

store

Flag Register Program Counter

stop, jump, jump flag

(9)

プログラム内蔵方式(von Neumann) プログラム・データを共にメモリ上に置く

−→ 主記憶装置 実行の流れ: 以下を繰り返す

プログラムを一命令づつ読み出す

命令の実行

次にどの命令を読み出すか

−→ プログラムカウンタ

(10)

プログラムカウンタ(program counter) 次に読み出す命令の番地(address)

保持する一時記憶場所(register)

順次実行(通常):

次の番地

−→ 基本はカウンタで実現

実行制御(無条件ジャンプ・条件分岐):

指定の番地

−→ 命令による値の書き換え

(11)

四進カウンタ

T が一周期変化する度に、内部状態が

0001101100 と変化する。

Q D T Q

D T CK

(12)

命令レジスタ(instruction register) 読み出した命令の一時記憶場所が必要

−→ 命令レジスタ 命令の種類:

演算(加減乗除・桁ずらし他)

演算対象の指定

演算結果の保存

実行制御

終了 など

(13)

演算の実行の実際

実際には、二項演算は次のように行なう。

: C ←A+B (1) A を読み出す

(2) B(読んで)足し込む (3) C に書き込む

読み出した値・演算結果の一時記憶場所が必要

−→ アキュムレータ(accumulator)

(14)

命令の形式: 命令の種類+番地 命令の種類:

主記憶からアキュムレータへの読出し (load)

アキュムレータから主記憶への書込み (store)

演算(add, subtract)

実行制御(jump, jump flag)

条件分岐の判断 −→ フラグレジスタ

終了(stop)

−→ これらを論理回路で実装すれば良い

(15)

必要な構成要素

主記憶装置

プログラムカウンタ

命令レジスタ

アキュムレータ (汎用レジスタ)

フラグレジスタ

番地解読回路・命令解読回路

演算回路 (補助演算回路)

パルス発生器

(16)

説明用の簡易モデルの仕様

1 word= 8 bit(= 1 byte)

−→ 一度に扱うデータの大きさを規定

? アキュムレータ

? 命令レジスタ

? 演算回路

? 主記憶1番地分

命令部: 3 bit、番地部: 5 bit

−→ 扱える命令・番地の個数を規定(制約)

(17)

説明用の簡易モデルの仕様

命令部: 3 bit、番地部: 5 bit

? 命令: 23 = 8 つ以内

load, store, add, subtract, jump, jump flag, stop.

? 番地: 0 番地から 31 番地まで

−→ 主記憶 25 = 32 byte

−→ プログラムカウンタは 5 bit

(18)

説明用の簡易モデルの仕様

命令部: 3 bit −→ 各命令を 3 bit で表す

· · · 命令の符号化(encoding) 命令 番号 符号化

stop 1 001

load 2 010

store 3 011

add 4 100

subtract 5 101

jump 6 110

jump flag 7 111

(19)

説明用の簡易モデルの仕様

Instruction Register

Accumulator main memory 00000= 0

00001= 1 00010= 2 11111=31

Address Decoder 5bit 3bit

Instruction Decoder

add, subtract Arithmetic Unit

8FA add, subtract load,

store

Flag Register Program Counter

stop, jump, jump flag

(20)

説明用の簡易モデルの実装 パルス発生器:

交互に1となる2つのパルスT1, T2を発生

T1 = 1 で次の命令の読出し プログラムカウンタを 1 進める

T2 = 1 でその命令の実行 T1

T2

(21)

説明用の簡易モデルの実装 処理の流れ:

T1 = 1 :

PCの値が指定する番地の主記憶の内容を 読出して、命令レジスタに書込み

PCの値を 1 増やす T2 = 1 :

命令レジスタの内容の解析と実行

(命令に応じた所定のレジスタへの書込み)

(22)

説明用の簡易モデルの実装 命令の実行:

load :

命令レジスタの番地部が指定する番地の 主記憶の内容を読出して、

Acc に書込み、フラグをセット (ここでは符号bitをコピー)

store :

Acc の内容を読出して、

命令レジスタの番地部が指定する番地の 主記憶に書込み

(23)

説明用の簡易モデルの実装 命令の実行:

add/subtract :

命令レジスタの番地部が指定する番地の 主記憶の内容と Acc の内容とを読出して、

演算回路で加算/減算し、

Acc に書込み、フラグをセット (ここでは符号bitをコピー)

(工夫すると回路は共通化出来る)

(24)

説明用の簡易モデルの実装 命令の実行:

jump :

命令レジスタの番地部をPCに書込み

jump flag :

フラグレジスタが 1 のときのみ、

命令レジスタの番地部をPCに書込み

stop :

命令レジスタの番地部をPCに書込み、

パルスを止める

書換えたPCの値が次の命令読出しで使われる

−→ 実行順番の変更

(25)

説明用の簡易モデルの実装

命令の実行 ( = 「計算」):

レジスタまたは主記憶の

現在の値(状態)に従って、

その値を変更(書込)すること

(26)

説明用の簡易モデルの実装

各命令がどこへの書込を引き起こすか

パルス T1: 命令レジスタ・PC

load: AccFlag

store: 主記憶の所定番地

add・subtract: AccFlag

jump・jump flag: PC

stop: PC・パルス発生器

(27)

説明用の簡易モデルの実装 レジスタ・メモリの側から、

どの命令に対して

何が書き込まれるべきか を見てみると、各部分が実装できる

(28)

命令レジスタ(IR)

パルス T1:

PCが指定した番地の主記憶の内容

Program Counter

main memory 0

1 2

31

Instruction Register Address

Decoder 5bit

8 x D-flipflop

T 8D

T1 multiplexer D

S

(29)

データの読出し address

0 1 2 3 memory

=D-flipflop B0

B1

B2 B3

(30)

データの読出し: 1 番地のデータを読出し address

0 1 2 3 memory

=D-flipflop B0

B1

B2 B3

0 1

(31)

プログラムカウンタ(PC)

パルス T1:カウンタを進める

(カウンタ回路の出力)

jump: 命令レジスタの番地部

jump flag: 同上 (FR1ならば)

stop: 同上

(32)

プログラムカウンタ(PC)

Program Counter

Instruction Register FR

Instruction Decoder 3bit jump flag

Counter Circuit 5 x D-flipflop 5D

T1 T

jump stop

T1 T2

T2

(33)

アキュムレータ(Acc)

load:

PCが指定した番地の主記憶の内容

add・subtract:

計算結果(演算回路の出力)

(34)

アキュムレータ(Acc)

Instruction Register

FR Instruction Decoder 3bit add subtract

T2

Accumulator 8 x D-flipflop 8D

8Q T

main memory 0

1 2

31 Address

Decoder 5bit

multiplexer D S Arithmetic Unit

8FA T

D

(35)

演算回路(Arithmetic unit)

(レポート課題例の問 7)

制御入力 subtract が 0 か 1 かに従って、

二進 8 桁の加算または減算を行なう。

−B =B+ 1 (BB の各bit反転)

−→ A−B =A+B+ 1

−→ 工夫すると加減算は回路を共通化できる 計算結果の正負に応じて FR を 0/1 に

−→ 符号bitをそのまま出力

(36)

演算回路(Arithmetic unit)

(レポート課題例の問 7)

制御入力 subtract が 0 か 1 かに従って、

二進 8 桁の加算または減算を行なう。

−B =B+ 1 (BB の各bit反転)

−→ A−B =A+B+ 1

−→ 工夫すると加減算は回路を共通化できる 計算結果の正負に応じて FR を 0/1 に

−→ 符号bitをそのまま出力

(37)

演算回路(Arithmetic unit)

(レポート課題例の問 7)

制御入力 subtract が 0 か 1 かに従って、

二進 8 桁の加算または減算を行なう。

−B =B+ 1 (BB の各bit反転)

−→ A−B =A+B+ 1

−→ 工夫すると加減算は回路を共通化できる 計算結果の正負に応じて FR を 0/1 に

−→ 符号bitをそのまま出力

(38)

主記憶(main memory)

store:

Accの内容を、IRが指定した番地に

Instruction Register Accumulator

main memory 0

1 2

31 Address

Decoder

5bit 32x8 x D-flipflop 8D

32T 3bit

store T2 Instruction Decoder

(39)

データの書込み address

0 1 2 3 memory

=D-flipflop B0

B1

B2

B3

D T T T T

D D D

D

(40)

以上で、説明用の簡易モデルについて、

論理回路による実装が出来た!!

(41)

説明用の簡易モデルによる計算の実行 予め

主記憶にプログラム・データを

PCに実行開始番地(通常0番地)

それぞれ書き込んでおいて、

パルスを発生させると動作する。

プログラム・データ: bit(機械語)

(42)

: 87 + 26 を計算する 機械語 番地 二進 十六進 0 00000 01000100 0x44 1 00001 10000101 0x85 2 00010 01100110 0x66 3 00011 00100000 0x20 4 00100 01010111 0x57 5 00101 00011010 0x1a 6 00110 00000000 0x00

Referensi

Dokumen terkait

インターネット出願の手順 啓明学園中学校高等学校 インターネット出願について ◆ 出願時来校不要。 願書も不要です。 ◆ いつでもどこでも出願ができます。 ◆ 各種クレジットカード・コンビニエンスストアでのお支払い方法が選べます。 *お支払いには別途手数料がかかります。あらかじめご了承ください。 出願手続きの流れ

インターネット出願の手順 啓明学園中学校高等学校 インターネット出願について ◆ 出願時来校不要。 願書も不要です。 ◆ いつでもどこでも出願ができます。 ◆ 各種クレジットカード・コンビニエンスストアでのお支払い方法が選べます。 *お支払いには別途手数料がかかります。あらかじめご了承ください。 出願手続きの流れ

3 .夏休み貸出がはじまりました 夏休みは普段よりも貸出期間が長く、借りられる本の冊数も多くなります。比較的余裕のある夏休み、涼し い部屋で本を読むのはいかがですか? 期限までに読み終わったら、別の本を借り直すこともできます。 4 .夏休みの開室日 冷房が効いているとはいえ油断せず、水分補給をしっかりしてください。 5 .夏休みにおすすめの本

◎次の文章を読んで、あとの問いに答えなさい。 新年早々、宮崎県の高 たか千 ち穂 ほ町で世界農業遺産・日本農業遺 産の認定地域合同シンポジウムに出席した。 世界農業遺産は、世界的に重要な伝統的農林水産業を営む 地域を、国連食 しょく糧 りょう農業機関(FAO)が認定する制度だ。 総合地球環 かん境 きょう学研究所がその制度設計に関わり、6年前に

1年 p.56〜57 ラインを用いて,本文と,基本 文や Activity を区別しています 英文は,生徒 が読み取りや す い ように, 折り返しの長 さを工夫! 日本語の活字には,読みやすい ユニバーサルデザイン・フォント を使用! ふつうのフォントば ユニバーサルデザイン・ フォント 英語 わかりやすいデザインと読みやすい活字

くりこみ群,2041年現在 服部 哲弥 宇都宮大学工学部 無限との会話 私は,今の解析学および理論物理学は1900年を中心にした革命期の後の洗練期に入ったと思って います.次の革命期は今から50年後,仮に2041年としましょう,を中心にした時期だと思います.

• NOT, OR, ANDのみで、 全ての Boole 関数が実現できる • NOTがあれば OR, ANDは片方で良い • OR, ANDだけでは 全ての Boole 関数は実現できない • 一種類の論理素子 NORまたは NANDだ けで、全ての Boole 関数が実現できる 以下では、 NOT, OR, ANDを用いた実現を考える。...

組合せ回路 入力の組によって出力が決まる n 入力 m 出力の回路は Boole 関数 f:Xf −→{0, 1}m ここに Xf⊂{0, 1}n は許される入力全体 を定める 組合せ回路 : Boole 関数の論理素子による実現 以下では、NOT, OR, ANDを用いた実現を考える... SR-フリップフロップ Set-Reset