• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint プレゼンテーション"

Copied!
49
0
0

読み込み中.... (全文を見る)

全文

(1)

ではコンピュータを特徴づける

「プログラム内蔵方式」とは

2020/9/9 1

半導体の勉強会を受けて、コンピュータとは何か、についても一緒に勉強しま専科2?

香川大学大学院工学研究科(信頼性情報システム工学専攻)

(2)

プログラム内蔵方式(=ノイマン型?)とは

• ICやLSI、そしてマイクロプロセ(ッ)サまで話が進んだが、原点に戻っ て、「プログラム内蔵方式」とは何か、どこに特徴があったのか • 既に述べたように、目的ごとに電子回路を個別に実現するのは、無 駄というより、工学的でも(科学的でも)ない ・・ 非効率的! • 個別の問題ごとに「Turing機械」を構成するより「万能チューリングマ シン=Universal Turing Machine(UTM)」を準備する方が効率的!

• 汎用的に作ることで、経費を抑え、ノウハウ蓄積も叶うことになる

• チューリングも、フォンノイマンも、天才的先見性(全体を見通す認識 力等)の持ち主なので、「コンピュータのあるべき姿を見極めた」と考 えることができる

(3)

プログラム内蔵方式(=ノイマン型)とは(2)

• 結局、基本的な(≒汎用的な)ハードウェア上に(内部に)、問題毎に 特化した計算手順を形式化した何か(後に、ハードに対して、柔軟性 に富むという観点から

ソフトな何かという意味

でソフトウェアと総称)を 搭載し、個別の問題を解決する手法・・プログラム内蔵方式・・を提案 • 卑近な例え話で説明すると、パン生地をこねて、外側(外形となる ハードウェア)を作り、中のアンコ?を目的ごとに入れ替えて、「ジャム パン」「クリームパン」「チョコ(レート)パン」を注文に応じて作り上げて 店頭に「個々の品物」として並べるような考え方 • どこまで「汎用」的に作れるか、どこの部分を個別の問題毎にカスタ ムメイドで作り込むか、の兼ね合い=TradeOffを、みんなで考えること で、コンピュータの基本構想=個別の問題が出来上がった

(4)

「天才、偉人」に弱いのは、古今東西を問わず

• プログラム内蔵方式(≒ノイマン型と呼ばれる)の着想は、ENIAC開発 チームの主要メンバであるジョン・モークリーとジョン・プレスパー・エッ カートも考案していたと伝えられる

• 開発チームに後から参加したフォン・ノイマンが単著で報告書『EDVAC に関する報告書の第一草稿(First Draft of a Report on the EDVAC)』を 書き、軍側のENIACプロジェクトのセキュリティ担当を務めたハーマン・ ゴールドスタインが当該報告書を「ノイマンの単著」として1945年6月30 日に配布。他の資料が軍事機密のため、それのみが部外者へ配布。 • ノイマンとゴールドスタインが、草稿の作者として他の人を挙げていな

(5)

「天才、偉人」に弱いのは、古今東西を問わず

• プログラム内蔵方式の概念はペンシルベニア大学ムーア・スクール (電気工学部)での会議の場で発展してきたもので、フォン・ノイマン のそこでの役割は単なるコンサルタントであり、第一草稿は議論され た概念をフォン・ノイマンが形式論理の言語に翻訳したものにすぎな い、とEDVAC設計チームの一部が主張。もし、そうなら研究者の倫理 観としはマズイような・・・ • また他の要因として、一流数学者の名前を利用してEDVACの名声を あげたいとしたペンシルベニア大学側の思惑も見え隠れする。後に、 モークリーとエッカートは開発チームから離脱するが、そこには彼ら の反発があったとも・・・これは想像に難くない話。

(6)

「天才、偉人」に弱いのは、古今東西を問わず

• ENIAC主要開発メンバーであるモークリーとエッカートは技術面で優 れており、後発参加のノイマンは理論的側面で優れていた。 • プログラム内蔵方式のコンピュータが「ノイマン型」と呼ばれる理由と して、ノイマンの単著報告書の影響が強い。彼の報告書=第一草稿 のみが部外者へ配布され、彼の知名度と相俟って「今もノイマンの名 で参照」されることになった。

(7)

「EDVACに関する報告書の第一草稿」(抜粋)

この第一草稿で、フォン・ノイマンは、「超高速自動デジタルコンピュー ティングシステム」(very high speed automatic digital computing system) の詳細設計について記述し、次の6つの主要な装置に細分:

• CA: 中央演算部(central arithmetic part) • CC: 中央制御部(central control part)

• M: 記憶装置(memory) • I: 入力装置(input)

• O: 出力装置(output)

• R: (低速度の)外部記憶装置((slow) external memory) - パンチカード、 紙テープ、磁気ワイヤ、鋼鉄テープなど

(8)

「EDVACに関する報告書の第一草稿」(抜粋)

前述の「6つの主要な装置」の中で、CAは、加算、減算、乗算、除算、 平方根の計算を実行。対数や三角関数などのその他の数学的演算は、 ルックアップテーブルと内挿を使用することで実現し、場合によって(精 度の必要に応じて、の意味か)4次函数を使用する・・要するに近似解 の利用。 乗算と除算は対数表でも可能であると述べたが、数表を十分に小さく 保つためには内挿が必要となり、それには乗算が必要となる。 後には、「6つの主要な装置」はノイマン型コンピュータの5大要素・・・ 記憶装置、演算装置、制御装置、入力装置および出力装置・・と表記

(9)

「フォン・ノイマン・ボトルネック」

• フォン・ノイマン・ボトルネック(Von Neumann bottleneck)は、コンピュータ・ アーキテクチャの1つの型であるノイマン型に存在する性能上のボトル ネック。 • ノイマン型(プログラム内蔵方式に共通)では、記憶装置に命令を格納す るので、プロセ(ッ)サが命令を実行するには必ずバスを通して記憶装置 (メモリなど)にアクセスしなければならず、プロセサ(=CPU)・メモリ間のア クセス速度が遅ければコンピュータ全体の処理能力を低下させるボトル ネック(=隘路)になる。 • 現代のコンピュータはほぼプログラム内蔵方式であり、CPU性能向上だ けでなく、メモリ・アクセス速度向上も図られる必要があり、キャッシュメモ リ導入など、記憶の階層化(memory hierarchy)によるコンピュータ全体の パフォーマンス改善が重要となる。

(10)

「フォン・ノイマン・ボトルネック」

• フォン・ノイマン・ボトルネックは、今日では、コンピュータ設計上の留 意点として扱われているが、もともとはプログラミングにおける問題意 識から指摘されたもの。 • ジョン・バッカスがそのチューリング賞受賞講演「プログラムはフォン・ ノイマン・スタイルから解放されうるか? 関数型プログラミング・スタ イルとそのプログラム代数」において、従来型のプログラミング・スタ イルの問題点について、それを実行するコンピュータの「CPUと記憶 装置と、その2つをつなぐバス」という構成の影響を受け過ぎており、 この隘路(ボトルネック)の交通整理をすることがプログラミングになっ てしまっている(煩雑化の要因)、と主張した際に命名

John W. Backus: "Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs". CACM, Aug.1978, https://doi.org/10.1145/359576.359579

(11)

「フォン・ノイマン・ボトルネック」

1 章 コンピュータのモデル -電子情報通信学会知識ベース

http://www.ieice-hbkb.org/files/06/06gun_04hen_01.pdf

Hardware organization of a typical system. CPU: Central Processing Unit, ALU: Arithmetic/Logic Unit, PC: Program counter, USB: Universal Serial Bus.

(12)

「フォン・ノイマン・ボトルネック」

https://basics.k-labo.work/ バスのシステムの構成には,命令の読込みとデータのアクセスを分離したハーバードアーキテクチャ, 両者を分離せず同一のバスでアクセスするプリンストンアーキテクチャがあること,アーキテクチャごと の特徴を理解する。 ノイマンアーキテクチャは主記憶に命令もデータも格納する方式。Pentiumなどの多くの CPUはこの方式を採用。 プログラムを記憶するメモリとデータを記憶するメモリを別にした構成をハーバードアーキ テクチャといい、マイコンなどで使われる方式。命令とデータに同時にアクセスできるので、 高速化に適す。

(13)

では、

「プログラム」とは何か

• 「プログラムとは?」を理解するため、少し不親切ながら、計算手順と いう観点からスタートします(コンピュータ入門なのに、申し訳ないで す) • 流石に、1+1= では、怒られるので、少しレベルを上げて、 を考えてみます。 • 上は、「多項式計算」ですが、通常は「2項演算」の組合せで実現し ます。すなわち、以下のようになります。そこで「漸化式」を用いて・・

A+B+C+D+E+F+G+H+I+J=

・・・・?

(((((((((0+A)+B)+C)+D)+E)+F)+G)+H)+I)+J=

(14)

「プログラム」とは何か

いきなりですが、漸化式で・・

初期値の記述: これは「漸化式」では重要ですが、現時点では?? A(0)=?? , S(0)=?? 多項式の第n項と第(n+1)項との関係の記述: 結局、2項演算に! S(n)=A(0)+・・・+A(n) S(n+1)=A(0)+・・・+A(n)+A(n+1)

S(n+1)=S(n)+A(n+1)

(15)

• 少し表現を考える(より数学的で恐縮ですが)と総和(summation)とな る・・しかし、同値(計算自体は同じ)

「プログラム」とは何か

いきなりですが、総和=級数で・・

1

0

)

(

n

i

i

A

)

0

(

)

0

(

;

)

0

(

,

)

1

(

)

(

)

1

(

A

S

value

whereA

n

A

n

S

n

S

(16)

「プログラム」とは何か

いきなりですが、

コード

で・・

S=A(0); /* 初期値 */ for (i = 0 ; i <= n ; ++i){ S=S+A(i+1); } S=A(0); i = 0; /* 初期値 */ while (i <= n){ S=S+A(i+1); ++i; } A(i):given • 表現は数学的な 記述からプログ ラムコードへと変 化するが、計算 自体は同じ

(17)

「プログラム」とは何か

いきなりですが、

流れ図

で・・

S=0; i=0; /* 初期値 */ while (i <= n+1){ S=S+A(i); i=i+1; } END L2 L1 START i = 0 S = 0 if ( i > n+1 ) then goto L2 S = S + A( i ) i = i + 1 goto L1 yes no • 左側の「流れ図(Flow Chart)」は、右側のプ ログラムコードを可視化(上から下への流 れで計算の動きを「見える化」)している。 流れ図 (Flow Chart) 前頁と同じ プログラムコード

(18)

• どのような機能(コンピュータの命令群=命令セット)が必要となるか? (流れ図、Flow Chart等から判断すると・・)

•代入文

S=0, i=0

•四則演算文

S=S+i, i=i+1

•分岐文

goto L1

•条件分岐文

if (i > n+1) then goto L2

• 結局、上のような計算・・正確には、計算を実行するためのデータ処理・・ を行うための命令(この命令の意味は、我々利用者がコンピュータに データ処理を行わせるための指示記述のこと)を定義する必要がある。

「プログラム」とは何か

いきなりですが、

流れ図

で・・

(19)

• 要するに、ある目的の計算手順(数学的である必要なし)を表記 ルールに基づいて記述したものを「プログラム」と呼ぶ。 • もし計算を電卓で実行したいなら、データとして 0⃣ から 9⃣ の「どの キー」を押し、演算として、 などの「どのキー」を押すか、 という手順をユーザが予め決めておいて、その手順に従って操作す ることになる。 • コンピュータの場合、電卓と異なり(プログラム電卓ではないとして)、 その手順を「プログラム」の形にして、データなどと一緒に記憶装置 に格納する。「コンピュータ自身」がそれを読み出し、(そこに何が書 いてあるかを)解釈し、それに従って、演算を実行することになる。

「プログラム」とは何か

(20)

「プログラム」とは何か

意思伝達手段について

相手が理解できる表現記述を使用する必要がある

従って、「コンピュータが理解できる形式」にプログラムを変換

(21)

「プログラム」とは何か

a high-level C program 言語処理系:プリプロセッサ+コンパイラ+アセンブラ+リンカ 電卓とは異なり、コンピュータ 自身が自動的にプログラム (の命令部分)を読み出し、解 釈して、実行(プログラムの データ部分を演算処理)する

(22)

プログラムの「基本構造」とは

• プログラムの「基本構造」 ( 「制御構造」、代表的な3つのパターン)とは、 多くのテキストで以下のように分類される。 • 逐次処理(Sequence):順次構造とか、順構造、順次、順次処理・・ • 繰返し(Loop/Iteration):反復構造とか、反復、繰返し処理、繰返構造 • 条件分岐(Conditional Branch):選択構造とか、選択、分岐・・ • 結局、大規模なプログラム開発であっても、その個別要素では、上の3つ のパターンを適宜、組み合わせて、計算手順を構成することになる。 https://www.acroquest.co.jp/webworkshop/programing_course/note.html https://shop.cqpub.co.jp/hanbai/books/18/18781/18781_3syo.pdf https://en.wikipedia.org/wiki/Structured_programming https://xtech.nikkei.com/atcl/nxt/column/18/00208/031300002/ http://itdoc.hitachi.co.jp/manuals/3020/3020378270/LANG0027.HTM 様々な参考文献に 同種の説明あり

(23)

プログラムの「基本構造」とは

Graphical representation of the three basic patterns — sequence, selection, and repetition — using NS diagrams (blue) and flow charts (green)

Sequence Selection = Conditional branch Repetition = Loop / Iteration 逐次処理 条件分岐 繰返し https://en.wikipedia.org/wiki/Structured_programming

(24)

プログラムの「基本構造」とは

https://en.wikipedia.org/wiki/Structured_programming Following the structured program theorem, all programs are seen as composed of control structures:

"Sequence"; ordered statements or subroutines executed in sequence.

"Selection"; one or a number of statements is executed depending on the state of the program. This is usually expressed with keywords such as if..then..else..endif.

"Iteration"; a statement or block is executed until the program reaches a certain state, or operations have been applied to every element of a collection. This is usually expressed with keywords such as while, repeat, for or do..until. Often it is recommended that each loop should only have one entry point (and in the original structural programming, also only one exit point, and a few languages enforce this).

"Recursion"; a statement is executed by repeatedly calling itself until termination conditions are met. While similar in practice to iterative loops, recursive loops may be more computationally efficient, and are implemented differently as a cascading stack.

(25)

逐次処理(Sequence)について

• 順番に処理を実行する(上から下へ) • プログラムが書かれている上から順に処理をし ていくというプログラムの構造で、プログラムの最 も基本的な動きとなる。 • 右の記述では、

• S=0 i= 0

• S=S+A(i)

i=i+1

などに相当する記述部分になる。

(26)

• 処理を繰り返し実行する • 決まった回数や条件を満たすまで同じ処理を繰 り返すプログラム構造で、反復処理とも。 • 右の記述では、

• Goto L1

などに相当する記述部分になる。

繰り返し(Loop/Iteration)について

(27)

• 条件により処理を選択する • 条件分岐とは、特定の条件のときは処理Aを、そ れ以外のときは処理Bを選択処理するプログラム 構造で、条件式が導出した状態に従い、次に実 行するサブプログラムを選択して分岐する。 • 右の記述では、

• if ( i > n + 1) then goto L2

などに相当する記述部分になる。 • 上で「条件式」とは” ( i > n + 1) ”を指し、値I, n+1 の大小比較によって、真偽が決定される(プログ ラム状態の確定)

条件分岐(Conditional branch)について

処理A 処理B

(28)

• 条件により処理を選択する • 条件分岐とは、特定の条件のときは処理Aを、そ れ以外のときは処理Bを選択処理するプログラム 構造で、条件式が導出した状態に従い、次に実 行するサブプログラムを選択して分岐する。 • 右の記述では、

• if ( i > n + 1) then goto L2

などに相当する記述部分になる。 • ” ( i > n + 1) ”を「条件式」と呼び、値i と n+1 との 大小比較によって、式の真偽が決定され、 プログラム状態が確定される。 処理A 処理B

プログラム状態(Program Status)について

(29)

• 変数a,bの関係(状態): a<b, a=b, a>b • 大小比較の条件は次の6通りとなる a<b,a≦b,a==b,a!=b,a>b,a≧b • 3つの状態(プログラム状態: Program Status)で,上の6通りを チェックできる?! 変数a,bの大小関係は次の3通り: a>b , a=b, a<b そこで,(a-b)を考える. 結果は・・・

プログラム状態(Program Status)について

(30)

1) (a-b)>0 ・・・ a>b パターン{0,0} 2) (a-b)=0 ・・・ a=b パターン{0,1} 3) (a-b)<0 ・・・ a<b パターン{1,0} の3通りで表現できるので,2進数で「 2ビットの情報量」となる ここで、少し天下りだが、「条件コードレジスタ」の導入を行う。 上記の3状態を以下のように定義する. 1) (a-b)>0 ・・・ {Nflag,Zflag}={0,0} 2) (a-b)=0 ・・・ {Nflag,Zflag}={0,1} 3) (a-b)<0 ・・・ {Nflag,Zflag}={1,0}

プログラム状態(Program Status)について

(31)

プログラム状態(Program Status)について

a>b {NZ}={00} a==b {NZ}={01} a<b {NZ}={10} a<b False False True a<=b False True True a==b False True False a!=b True False True a>b True False False a>=b True True False 照会する aとbとの 比較条件 実際のaとbの関係 (aとbの関係状態)

比較条件

は6通り

(32)

比較条件

は6通り

条件分岐命令も6通り

命令コード 「条件分岐命令」の意味 a<b jplt Jump On Less Than a<=b jple Jump On Less Than Or Equal To a==b jpeq Jump On Equal To a!=b jpne Jump On Not Equal To a>b jpgt Jump On Greater Than a>=b jpge Jump On GreaterThan Or Equal To 照会する aとbとの 比較条件

(33)

プログラムを構成する命令語とは何か

• 少しプログラムが分かってくると、そのプログラムを構成する命令語 を理解することが必要となる。では命令語とは何か?

• ところで「命令形」って言いますよね・・中学生の英語を思い出してく ださい・・ちょっと例示すると;

• Please give me chocolate.

• Boys, be ambitious. Let me alone.

• Never pull off till tomorrow what you can do today.

• 総て「動詞(の原形)+目的語(補語)」という形になっている。

(34)

『プログラム内蔵方式(stored programming)』の特徴を

もつ計算機≒

ノンマン型コンピュータ

と表現

プログラム=「命令系列」+「データ集合」

予め、記憶装置にプログラムがセットされていて、それを読出して、確かめながら、コン ピュータは実行する。その速度が高速なので、様々な目的に利用できる。でも、いくつか疑 問が・・・ 1)プログラムはどこに「セット」されているか? 2)どのように「プログラムを確かめるのか?」 3)プログラムを実行するとはどのようなことか? 4)何故,高速に実行できるのか? 5)コンピュータが実行できるプログラムとは(命令とは)どのようなものか? 6)プログラムはどのような順番で実行されるのか?

(35)

プログラム内蔵方式のコンピュータ

の構造

制御装置(Control Unit) 演算装置 (ALU+Register) 記憶装置(Memory) 入力・出力装置 (I/O Unit) CP U ( プ ロ セ サ )

ノイマン型計算機

(の方が簡潔?)

(36)

ノイマン型計算機の構造 その動作について

1. 予めメモリにプログラムを格納 2. 制御装置がプログラムを1つづつ読出す・・② 3. 制御装置で解釈(解読)・・③ 4. どのような命令かを判断し,演算装置などを動かす(制御)・・④ 5. プログラムが終了するまで,2~4を繰り返す プログラム内蔵方式

Program

② ③ ④

(37)

ノイマン型計算機の構造

~全体イメージ~

命令(群) + データ(群) プ ロ グ ラ ム 制御 装置 演算 装置 記憶装置 (+ データ集合 命令系列 プログラムは命令系列 とデータ集合から構成 メモリに予め格納 ノイマン型 コンピュータ

(38)

プログラムを構成する・・

• プログラムは「命令系列」と「データ集合」がら成り立つ・・ということ のようだが、「命令系列」とは?「データ集合」とは? • ざっくり言えば、「命令系列」とは、命令語の並び(実はこの並び方が 重要です)、一方、「データ集合」とは、系列を構成する「個々の命令 語」が操作対象とする「データ」の集まりを意味する。 • Give me chocolate. • Be ambitious. • Let me alone.

• Never pull off what you can do.

• 少し「ラフな説明」になりますが、上の4つの命令語をこの順番で実行 するように(明確に)指示することが「プログラム」であると考える。

命令語

= 命令(動詞)+目的語(補語) 命令の並び =命令系列 (順番に意味 がある)

(39)

ノイマン型計算機の構造

~ソフトウェアとの関係~

move a,GR0 add b,GR0 move GR0,c c=a+b; コンパイル (コンパイリング) ②・・・ ①・・・ ③・・・ 機械語(アセンブリ言語)とプログラミング言語の関係 ハードウェアとソフトウェアとの深い?深い!!関係 コンパイラ+ローダなどのソフトウェア との協調関係の理解が必要! ローディング 人間の分かるプログラム からコンピュータの分か るプログラムへ(翻訳) 人間の分かる プログラム コンピュータの 分かるプログ ラム

(40)

ノイマン型計算機の動作を参考に考えると・・

move a,GR0 add b,GR0 move GR0,c a:10 b:20 c: (初期値なし) 制御装置 演算装置 記憶装置  命令を実行する順番って決まっているの?  メモリには命令群とデータ群が格納されているとのことだけど、 どうやって区別しているの? 最初の疑問: コンピュータの分 かるプログラム

(41)

実行の順番は何で決まるか?

• どこかに順番を決める「番号付け」となる情報が存在することになる • 「メモリは、情報を格納する箱の集合である」という概念を思い出して ください • どの箱にどのような情報が入っているかは各箱に番号付けを行うこ とで、取り出しも容易になる。

メモリ

:「

番号付きの箱

」の集合

(42)

メモリ

:「

番号

(番地)

付きの箱

」の集合

情報 番地 情報 番地 move a,GR0 add b,GR0 move GR0,c a:10 b:20 c: (初期値なし) 0 1 2 3 4 5 6 7

(43)

• 番地の値の小さいものから大きいものへと順番にその「情報」を命 令として、読出し、解釈し、実行する!? • 「現在、実行中の命令の格納された番地はいくらか」という状態を記 憶する「何か」が必要となる。

Program Counter

」という存在

メモリの番地+情報の関係

(44)

命令群とデータ群の境界を如何に区別するか?

• Program Counterによって命令の実行順番が識別できることになった ので、命令として実行できる記憶領域(の番号)と、データを格納して おく記憶領域(の番号)とを、プログラムを読み出し解釈して実行す るまでに決めておけば良いことになる。 • 1つの解決策として、次の番地からは命令ではありません(あるいは 次はデータ群を格納している領域です)と明記する「

特別な命令

」 を用意しておけば安心できる。(コンピュータは誤動作しない)

命令語の定義

:「

命令セットアーキテクチャ

」の

話題

(45)

• 命令として実行できる記憶領域(の番号)の最後・・データを格納し ておく記憶領域(の番号)の前・・に、処理を終了させる「終了命令」 を配置することで、間違ってデータ部分を命令と思って実行する危 険性を回避できる。

halt

命令が必要!

• 実は、一般のプログラム中にはhalt命令を置くことは禁止されている。 何故か?一緒に考えてみましょう

halt 命令

」などのような命令=コンピュータ

の動作を規定、が必要となる

例えば、終了命令を考える

(46)

halt命令

」の挿入

: : 情報 番地 move a,GR0 add b,GR0 move GR0,c a:10 b:20 c: (初期値なし) 0 1 2 3 4 5 6 7 情報 番地 add b,GR0 move GR0,c 2 3 : a:10 b:20 c: (初期値なし) 4 22 23 24

halt

X (停止)

命令

系列

データ

集合

(47)

プログラム内蔵方式が(よく)理解できれば、

コンピュータも怖くない

• コンピュータに実行させたい「プログラム」を・・まず、人間が理解でき る形で作成し・・準備し、それを・・コンピュータが理解できる形に翻訳 して・・記憶装置に格納する。 • 記憶装置(メモリ)にプログラムを格納できれば、それを(自動的に) 読み出して、実行できる仕組みが必要となる。 • コンピュータは、記憶装置、演算装置、制御装置、入力装置、出力装 置から構成される。 • 記憶装置に格納された(コンピュータの理解できる)プログラムを構 成する命令語を読み出し、解釈し、演算装置などに処理=実行させ る。

(48)

プログラム内蔵方式が(よく)理解できれば、

コンピュータも怖くない(2)

• 命令語を記憶装置から1つづつ読み出して、解釈して、演算装置に実行さ せる仕組みを「制御装置」が持つ必要がある。 • 一方、入力装置はデータなどをコンピュータの外部から記憶装置へ読み 込む機能を実現する。 • キーボード(マウス)や入力機器(ディスクも含む)が入力装置である • また、出力装置は記憶装置にあるデータをコンピュータの外部に書き出す 機能を実現する。 • ディスプレイ、プリンタ、ディスクが出力装置である。

• 制御装置と演算装置を1つにまとめてCPU(Central Processing Unit)と呼び、 記憶装置はメモリ(主メモリ)と呼ぶ。

(49)

プログラム内蔵方式が(よく)理解できれば、

コンピュータも怖くない(3)

• 結局、プログラムを実行する上で、記憶装置(主メモリ)とCPU=制御 装置と演算装置が、入力装置や出力装置を使いながら、どのような 動きをするかを理解することが重要となる。 • いくつかの具体的なプログラムを対象として、コンピュータが5大要素 である、記憶装置、演算装置、制御装置、入力装置、出力装置をど のように動作させるかを具体的に理解することで、プログラム内蔵方 式のコンピュータを理解する。

参照

Outline

関連したドキュメント

観光協会・温泉組合等 + A旅館 Bホテル Cホテル D旅館

エリア Aエリア Bエリア Cエリア 密度 (頭/㎢)※

[r]

(1) 建屋海側に位置するサブドレンのポンプ停止バックアップ位置(LL 値)は,建屋滞留 水水位の管理上限目標値 T.P.2,064mm ※1

電事法に係る  河川法に係る  火力  原子力  A  0件        0件  0件  0件  B  1件        1件  0件  0件  C  0件        0件  0件  0件 

と発話行為(バロール)の関係が,社会構造(システム)とその実践(行

100~90点又はS 評価の場合の GP は4.0 89~85点又はA+評価の場合の GP は3.5 84~80点又はA 評価の場合の GP は3.0 79~75点又はB+評価の場合の GP は2.5

添付 3 で修正 Dougall-Rohsenow 式の適用性の考えを示している。A型とB型燃料の相違に よって異なる修正