情報工学実験 II コンピュータアーキテクチャと命令セット 作成者: 065762A 与儀涼子 共同実験者: 065708F 上地クリスティーナ 実験:07.10.12 締切:07.10.19 提出:07.10.19 1 目次 1 実験目的 3 2 実験概要 3 3 実験結果 3 4 3.1 3.2 3.3 実験 (1) リファレンスを読む . . . . . . . . . . . . . . . . . . . . . . . 3.4 実験 (4) 学籍番号の和を求めるプログラム . . . . . . . . . . . . . . . 6 実験 (3) 基本的操作の確認 . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 アセンブラプログラム . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 3.4.3 フローチャート . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 実行結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 考察 4.1 実験 (3) の考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 実験 (4) の考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 その他の考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.3 5 実験 (2) 例題プログラムの実行 . . . . . . . . . . . . . . . . . . . . . 3 3 3 調査課題 5.1 5.2 コンピュータの主要構成要素に関して . . . . . . . . . . . . . . . . . . . 各レジスタの役割について . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 11 5.3 各記憶装置の配置場所、役割について . . . . . . . . . . . . . . . . . . . 12 感想 13 2 実験目的 1 教育用ワンボードコンピュータ KUE-CHIP2 を用いて例題プログラムを実行する事 により、KUE-CHIP2 の操作方法を習得する。また、簡単な機械語 (マシン語) プログ ラムの作成を通して、KUE-CHIP2 の命令セットおよび機械語プログラムの構造を理解 する事を目的とする。 実験概要 2 まず、リファレンスマニュアルを読んで KUE-CHIP2 の各表示部の意味や操作方法 を学ぶ。次に、リファレンスの例題プログラムを入力して実行する。それによって基本 的な操作に慣れ、同時にこのプログラムで使われている命令から、KUE-CHIP2 では どのような命令セットがあるのかを学ぶ。次の実験では、指導書の (a)∼(p) の項目に ついての操作方法を調べ、実行する事で KUE-CHIP2 の基本操作を確認する。最後に、 「学籍番号の 6 桁の数字の和を求めるプログラム」作成する。アセンブラプログラムを 記述し、機械語に直し、入力して実行するという一連の流れを実際にやる事で、今回の 実験のまとめとする。 実験結果 3 3.1 実験 (1) リファレンスを読む 実験内容:「 KUE-CHIP2 教育用ボード・リファレンスマニュアル (抜粋)」 第 1 章、 第 2 章をよく読み、 KUE-CHIP2 の各表示部の意味、スイッチ類の 操作方法を調べよ。 (報告の必要なし) 本実験の結果に関しては、報告を省略する。 3.2 実験 (2) 例題プログラムの実行 実験内容:「 KUE-CHIP2 教育用ボード・リファレンスマニュアル (抜粋)」第 3 章の 内容に従って、例題プログラムを入力し、実行せよ。(報告の必要なし) 本実験の結果に関しては、報告を省略する。 3.3 実験 (3) 基本的操作の確認 実験内容:以下の各項目について、その操作手順を調べ、実際に KUE-CHIP2 を操作 し、動作を確認せよ。丸印の無い項目については、報告を省略する。 3 (f ) PC に 10H を格納する方法 1. SEL を 2(0010) に合わせる。→操作対象が PC になる。 2. DATA を 10H(0001 0000) に合わせる。 3. SET を押す。→ PC に値 10H がセットされる。 ・この操作後は、プログラムが 10H 番地から実行されるようになる。 (j) 90H 番地から 9FH 番地までの内容を連続的に見る方法 1. SEL を 8(1000) に合わせる。→操作対象が MAR になる。 2. DATA を 90H(1001 0000) に合わせる。 3. SET を押す。→ MAR に値 90H がセットされる。 4. SEL を 0(0000) に合わせる。→操作対象がメモリのプログラム領域になる。 5. ADDRESS LED に 90 と表示され、DATA LED に 90H 番地の内容が表示される。 6. ADRINC を押す。→ MAR の値が 1 インクリメントされ、次の番地の内容が表示され る。 7. 9FH 番地になるまで 6 を繰り返す。 (l) 90H 番地から 9FH 番地までの全ての内容に 11H を格納する方法 1. SEL を 8(1000) に合わせる。→操作対象が MAR になる。 2. DATA を 90H(1001 0000) に合わせる。 3. SET を押す。→ MAR に値 90H がセットされる。 4. SEL を 0(0000) に合わせる。→操作対象がメモリのプログラム領域になる。 5. ADDRESS LED に 90 と表示され、DATA LED に 90H 番地の内容が表示される。 6. DATA を 11H(0001 0001) に合わせる。 7. SET を押す。→ 90H 番地に値 11H がセットされる。 8. ADRINC を押す。→ MAR の値が 1 インクリメントされ、次の番地の内容が表示され る。 9. SET を押す。→ 91H 番地に値 11H がセットされる。 10. 9FH 番地になるまで 8∼9 を繰り返す。 (n) プログラムを 20H 番地から実行する方法 1. SEL を 2(0010) に合わせる。→操作対象が PC になる。 2. DATA を 20H(0010 0000) に合わせる。 3. SET を押す。→ PC に値 20H がセットされる。 4. SS を押す。 ・プログラムが 20H 番地から実行される。 4 (o) プログラムを 1 命令ずつ実行する方法 SI を押す。 ・プログラムが 1 命令ずつ実行される。 3.4 実験 (4) 学籍番号の和を求めるプログラム 学籍番号の 6 個の数字を足してその合計を求めるプログラムを各自で作成し、実行し なさい。ただし、学籍番号の 6 個の数字は、データ領域の 00H 番地から 05H 番地にあ らかじめ格納しておく事。 3.4.1 アセンブラプログラム 各レジスタの初期値 ・PC=0, IX=5, ACC=0 ADRS DATA OPECODE ---------------------------000 B7 ADD ACC,(00H+IX) 001 002 003 00 AA 01 004 005 32 02 SUB IX,1 BZP 00H 006 0F HLT ---------------------------100 0 101 102 6 5 103 104 105 7 0 8 5 3.4.2 フローチャート 以下に上記プログラムのフローチャートを示す。 START ACC + (00H+IX) → ACC IX -1 → IX yes NF = 0 no END 図 1: フローチャート 条件分岐を用いたプログラムである。条件分岐 BZP は、計算結果が 0 または正の数 のときにオペランドの値の番地にジャンプする。ADD 命令のアドレス指定にインデッ クス修飾を使い、00H+IX 番地の内容を加数としている。たとえば、IX が初期値 05H の時は ACC+(05H) → ACC となる。IX を 1 ずつデクリメントし、計算結果が正の数 か 0 なら 02H 番地にジャンプする。IX が 00H の時にデクリメントされると負の数に なる。この時 FR(フラグレジスタ) の NF(ネガティブフラグ) が 1 になり、ジャンプせ ずに HLT 命令が実行されて終了する。 3.4.3 実行結果 065708 をメモリに格納して実行してみた。実行後の ACC レジスタの値は 1AH と なっていた。よって計算結果は正しい。 6 考察 4 4.1 実験 (3) の考察 実験 3 の結果に示した各操作結果と同じ結果が得られる別の操作方法があるか検討せ よ。 実験 3 の (j) と (l) について、実験結果では MAR の値を指定する事で特定のアドレス を参照する方法をとったが、ADDRESS8∼0 ディップスイッチで指定する事もできる。 (j) を例にとり、以下にその方法を示す。 1. SEL を 0(0000) に合わせる。→操作対象がメモリのプログラム領域になる。 2. ADDRESS ディップスイッチを (1001 0000) に合わせる。 3. IMC トグルスイッチを CHECK にする。→ ADDRESS ディップスイッチで指定されたア ドレスを参照する。 4. ADDRESS LED に 90 と表示され、DATA LED に 90H 番地の内容が表示される。 5. ADDRESS ディップスイッチを動かす事でアドレスを 1 ずつ増やして行き、9FH 番地 になるまで 2∼4 を繰り返す。 (l) の場合も、アドレスを上記のやり方で指定する事で同じ結果が得られる。 4.2 実験 (4) の考察 アセンブラプログラムと、これまでに学んだプログラミング言語 (C 言語や Java) と を比較し、両者の違いや特徴に着いて考察せよ。 アセンブラプログラム (アセンブリ言語) は、0 と 1 のみの機械語と一対一で対応して おり、コンピュータにとってわかりやすい言語 (低級言語) であると言える。アセンブ ラを利用して機械語に変換される。記述法がプロセッサの命令セットに依存する。つま り、表現や記述法がプロセッサによって異なる。乗算などの複雑な演算を一つの命令で 行うことはできないが、メモリ領域の指定などの CPU レベルの操作ができる。以上の 特徴から、使用するメモリ領域を指定したい場合や正確な実行速度が求められる場合な どに向いている。 これまでに学んだプログラミング言語は、人間にとってわかりやすい言語 (高級言語) であるといえる。機械語とは一対一対応ではなく、変換するためにコンパイラを利用す る。メモリ制御などの CPU レベルの操作を意識せずに扱える。記述法などが CPU に 依存しない。以上の特徴から、ソフトウェアの開発に向いている。 4.3 その他の考察 本実験を通して得られた新たな知見について詳しく報告せよ。 7 今回の実験では、主に KUE-CHIP2 の基本的操作について学んだ。例題プログラムを 入力する事で、プログラムをメモリに格納する方法や、メモリ上でプログラム領域と データ領域が分かれており、その切り替えは MAR の MSB の値を変更する事で行う事 などを学んだ。KUE-CHIP2 の基本操作を実践する実験では、各レジスタの役割や、ア クセスするレジスタを切り替える方法などを学んだ。実際に自分でアセンブラプログラ ムを書いて実行する実験では、アセンブラ言語を機械語に直す必要があり、その際にア センブラ言語と機械語は 1 対 1 対応である事が理解できた。また、空き時間に実験指導 書を読む事で、実験では利用しなかったレジスタの役割、命令コード、アドレス指定の 方法、フラグビットの種類、命令実行フェーズの流れ、そしてクロック周波数を設定し て動作速度を制御する事などを学んだ。 調査課題 5 5.1 コンピュータの主要構成要素に関して 1. 調査対象となるコンピュータ 調査内容:調査対象となるコンピュータを自分のコンピュータあるいは自宅や大学に あるコンピュータから一台選択し、メーカー名、商品名、型番などを示せ。 調査対象:自宅のコンピュータ。(Windows XP) メーカー名等:自作なのでわかりません。 2. 入力装置について i. 入力装置の役割 ユーザがコンピュータに文字、位置、音声、画像などのデータや情報を伝えるために利 用される機器。 ii. 入力装置の具体例 3 つとその特徴 キーボード: 主に文字の入力、項目の選択などに利用される主要なデバイス。GUI の場合はポイン タの移動がキーボードだけではできない場合があるので、主に文字入力に利用される。 マウス: 現在最も主要なポインティングデバイス。本体を移動させる事でコンピュータ上のカー ソルの座標を変化させる。ホイール式や光学式、レーザー式など様々な種類がある。ち なみに、マウスの感度を示す単位はミッキーである。 スキャナ: 静止画像をデジタルデータ化する機器。 8 iii. 調査対象のコンピュータ キーボード、マウス、スキャナ 3. 記憶装置について i. 記憶装置の役割 コンピュータが情報の記憶を行うために利用される機器である。CPU が直接データを やり取る主記憶装置と、外部の媒体である補助記憶装置 (外部記憶装置) に大別される。 主記憶装置は、半導体素子を利用して記憶するため動作が高速だが、電源を切ると内容 が失われる。メインメモリ、一次記憶装置とも呼ばれる。 補助記憶装置は、磁気や光を使って記録するものが一般的で、動作は遅いが容量が大き い。また、電源を切っても内容は保持される。 ii. 補助記憶装置の具体例 5 つとその特徴と相違点 HDD: 磁気によってデータを読み書きする。大容量で動作も高速なため、最もメジャーな補助 記憶装置。容量は現在∼数 TB ほど。 CD/DVD: レーザー光でデータの読み書きを行う光ディスクの一種である。現在では一度だけ書き 込み可能な CD-R や DVD-R、何度も書き換え可能な CD-RW,DVD-RAM などの種類 がある。容量は CD は 700MB 前後が一般的。DVD は 1.4GB∼17GB ほど。 USB メモリ: USB コネクタに接続して使用するフラッシュメモリ。手軽でそれなりの容量があるた め、携帯用として普及している。容量は現在∼64GB ほど。 メモリーカード: 薄いカード型の記憶装置。小型でデータの読み書きにほとんど電力を消費しないため、 携帯電話やデジタルカメラの記録メディアとして普及している。フラッシュメモリや超 小型の HDD を内蔵する。現在の主要なメモリーカードは、SD カード, MS(メモリー スティック), SM(スマートメディア) など。容量は現在 microSD カードで 2GB ほど。 MO: 光磁気ディスク。レーザー光と磁気を用いて書き込みをし、読み取りはレーザー光のみ で行う。耐久性に優れる。容量は一般的な 3.5inch タイプで 128MB∼2.3GB ほど。 iii. 調査対象のコンピュータの記憶装置とその容量 ・メインメモリ (DDR-SDRAM:512MBx1) ・内蔵 HDD1(ATA 接続:80GB)、内蔵 HDD2(ATA 接続:250GB)、USB メモリ (1GB) 9 4. 出力装置について i. 出力装置の役割 コンピュータがユーザにデータや情報を伝えるために利用される。 ii. 出力装置の具体例 3 つとその特徴 ディスプレイ: モニタともいう。出力される映像信号を表示する。ブラウン管や液晶、プラズマなどの 種類がある。 プリンタ: コンピュータで作成した文字データや画像データを紙などに印刷する機器。インクジェッ ト式やインクリボン式、熱転写、レーザーなどの種類がある。 スピーカー: 据え置きの音声出力装置。音声などの電気信号を物理振動に変えて音を出す。AUDIO 端子に接続するのが一般的だが、最近では USB 接続のスピーカーも登場している。 iii. 調査対象のコンピュータの出力装置 ディスプレイ、プリンタ、スピーカー 5. プロセッサについて i. 演算装置の役割 CPU の構成要素のひとつ。ALU とも呼ばれる。四則演算や論理演算などの処理を行う 回路。演算を行う回路の他、アキュムレータやフラグレジスタなどの演算結果に関連す るレジスタなどで構成される。 ii. 制御装置の役割 CPU の構成要素のひとつ。命令を解読して演算装置に送る、他の装置の動作タイミン グを制御するなどの働きがある。 iii. 調査対象のコンピュータのプロセッサの性能や特徴 ・AMD Athlon XP 2000+ ・32bit マイクロプロセッサ, 型は Socket A, FSB は 266MHz ・Athlon XP では動作周波数ではなくモデルナンバーで性能が表される。2000+では実 働 1.6GHz 前後とされる。 10 5.2 各レジスタの役割について コンピュータのプロセッサ内部では、レジスタと呼ばれる記憶装置が使用されてい る。以下に示す各レジスタの役割を調査し、説明せよ。 アキュムレータ (ACC) 演算結果を置いたり、データを一時的に記憶するレジスタ。 加算、減算を行う基本的な回路が付属している。 インデックスレジスタ (IX) 主記憶装置上でのデータのアドレスを求めるときなどに、 基準からの増減値を記憶するレジスタ。アドレス計算用の回路がついている。 プログラムカウンタ (PC) 次に実行する命令が格納されているメインメモリ上のアド レスを持つレジスタ。分岐命令はこの PC を利用して実現されている。また、後述のス タックポインタと併用する事でサブルーチンコールを実現できる。 メモリアドレスレジスタ (MAR) 参照するメモリのアドレスを指定する時に用いる レジスタ。CPU によってはアドレス計算用の回路がついている。 命令レジスタ (IR) メインメモリから取り出した命令を格納するレジスタ。 フラグレジスタ (FR) 演算結果によって状態の変化するフラグビットの集まり。KUE- CHIP2 だと、CF(Carry Flag), VF(oVerflow Flag), NF(Negative Flag), ZF(Zero Flag) から成る。これらのフラグは主に条件分岐に用いられる。 スタックポインタ (SP) アドレスレジスタの一種で、CPU の動作状態を一時的に保存 する場所のアドレスを保持する。スタックは LIFO(last in first out) なので、あるデー タを送出した後は次の保存場所を指し示す必要がある。そのためスタックポインタでは 自動的に値を増減させる機能がついている事が多い。 ページレジスタ (PR) アドレス計算の基準となる基底アドレスを保持するレジスタ。 コントロールレジスタ (CR) フラグレジスタの各フラグの値をリセットしたり、CPU を特殊な動作状態にすることを指示するレジスタ。 汎用レジスタ 用途が限定されていないレジスタ。アキュムレータとしてもアドレスレ ジスタとしても利用できる。 11 5.3 各記憶装置の配置場所、役割について コンピュータで使用される記憶装置には、レジスタの他に、キャッシュメモリ、メイ ンメモリ、ハードディスクなどがある。これらの各記憶装置の配置場所 (搭載箇所)、役 割を説明せよ。また、各記憶装置の容量やコストの関係を論ぜよ。 レジスタ コスト:高価 容量:32bit∼128bit 処理速度:非常に高速 配置:CPU 内部 CPU 内部で、演算、アクセスするメインメモリ上のアドレス指定、動作状態を保持・ 変更するために用いられる。 キャッシュメモリ コスト:高価 容量:(L1 キャッシュ)16KB∼256KB ほど。(L2 キャッシュ)256KB∼ 2MB ほど。 処理速度:高速 配置:CPU 内部 CPU とメインメモリの中間で、使用頻度の高いデータを蓄積しておく事でメインメモ リへのアクセスを減らし、高速化を図る。キャッシュを数段階に分けて搭載する場合も あり、現在では L1∼L3 キャッシュまで持つ物もある。L1 ほど高速で低容量、L3 ほど 低速で大容量。 メインメモリ コスト:基準とする 容量:∼8.5GB ほど。 処理速度:高速 (キャッシュメモリには 劣る) 配置:CPU 外部 データやプログラムなどを記憶する主記憶装置。CPU から直接読み書きする事ができ る。半導体素子を利用するため高速。電源を切ると内容が失われる。 ハードディスク コスト:安価 容量:∼数 TB ほど。 処理速度:低速 配置:CPU 外部 磁気を用いて読み書きする補助記憶装置。主記憶装置などと比較すると大容量で安価で 低速。電源を切っても内容が保存される。 以上の機器の特徴から、体積が小さく、処理速度が高速な物ほど単位容量あたりの単価 が高くなる。つまりコストがかかる。その性質の差から、処理が高速なものほど演算や 一時的な記憶に利用され、容量が大きいものほど長期的な記憶に利用される。 12 6 感想 アセンブラ言語についてはコンピュータ 2 の授業で学習しており(当然今回使用した ものとは表現法が違ったが)機能などは大体理解していたので、割とサクサク進める事 ができた。特に分岐やインデックス修飾に関して学んでた事は大きかった。ただし学ん でいたのはアセンブラ言語の文法や記述法のみで、実際にどうやってプログラムを格納 するか、またそれぞれの番地にアクセスする方法などは全く何も知らなかっため、新し く学ぶ事が多い実験だったと感じる。そのへんは考察の「今回新たに得た知見」で延々 と垂れている通りだ。また、実験指導書がとてもわかりやすく、実験で行き詰まったら とりあえず読んでみると打開策が見つかったりもした。 参考文献 [1] 実験指導書-コンピュータアーキテクチャ編- 吉田たけお [2] Wikipedia http://ja.wikipedia.org/ [3] IT 用語辞典 e-Words http://e-words.jp/ 13
© Copyright 2026 Paperzz