![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
| 1,RAM |
| 2,ROM |
| 3,CPU |
それでは、個々のデバイスについて詳細にみてみましょう。
RAMは、一時的にデータを蓄えるデバイスです。

ICのピンには、次のものがあります。
| ピン | 入出力 | 説明 | |
| アドレス | A0〜Axx | I | 容量によりxxは異なる |
| データ | D0〜D7 | I/O | |
| 制御 | I | 読み書きの選択 | |
| I | 制御許可 | ||
| I | チップ選択 |
真理値表は次の通りです。
| D0〜7 | ||||
| H | X | X | High-Z | 非動作 (スタンバイ) |
| L | H | X | High-Z | 非動作 (アクティブ) |
| L | H | 出力 | 読み込み | |
| L | 入力 | 書き込み |
RAMのデータを読みをするときは、アドレスを確定した状態で
を1にして、読みとり状態にしておきます。
そして、
と
を両方とも0にすると、データピンに内容が出力されます。
逆に、書き込みを行うときはアドレスとデータを確定した状態で
を0にすると、準備完了です。
あとは、
と
を両方とも0にすると、RAMに書き込まれます。
下に、そのタイミングを示します。

は、0にすることで、RAMがアクティブになります。
1の時はスタンバイ状態なので、あまり電力を消費しません。
は、信号入出力の許可をします。1の時は、データピンを
High-Z(電気的にどこにも接続していない状態)にします。
0にすることで、初めてデータピンを通して信号の入出力ができます。
RAMは大きく分けると、DRAMとSRAMに分かれます。
DRAMは、コンデンサーで記憶するので、一定時間ごとに
リフレッシュという動作が必要になります。
SRAMはフリップフロップで記憶するので、リフレッシュの
必要なありません。通常は動作の簡単なSRAMを使用するといいでしょう。
ROMはプログラムや辞書的なデータなど、固定値を記憶するデバイスです。

基本的に、RAMから書き込み機能をなくしたものがROMです。
| ピン | 入出力 | 説明 | |
| アドレス | A0〜Axx | I | 容量によりxxは異なる |
| データ | D0〜D7 | I/O | |
| 制御 | I | 制御許可 | |
| I | チップ選択 |
真理値表は次の通りです。
| D0〜7 | |||
| H | X | High-Z | 非動作 (スタンバイ) |
| L | H | High-Z | 非動作 (アクティブ) |
| L | 出力 | 読み込み |
ただし読み込み専用といっても、ユーザーがなんだかの方法で
書き込みを行う必要があります。書き込み方法はROMの種類によって
異なりますが、たいていは、12Vの高電圧をかけることで行います。
CPUはみなさんがご存じのように、コンピュータの頭脳とも呼べるデバイスです。
このCPUが、メモリーやIOポートなどを制御します。

写真のようにCPUのピン数は非常に多く、機能も様々なものがあります。
以下の表は、Z80という8ビットCPUの代表的な機能のものだけ取り出して
いますが、複雑であることがわかると思います。
| ピン | 入出力 | 説明 | |
| アドレス | A0〜Axx | I | 容量によりxxは異なる |
| データ | D0〜D7 | I/O | |
| 制御 | RD | O | 読みとり |
| WE | O | 書き込み | |
| RFSH | O | DRAMを使用したときのリフレッシュ | |
| MREQ | O | メモリアクセス | |
| IORQ | O | IOアクセス | |
| CLK | I | クロック | |
| RESET | I | リセット | |
| INT | I | 割り込み |
CPUはリセットをされるとアドレスに0を出力し、メモリ0番地の命令から
順次実行していきます。メモリーにはCPUが実行すべき命令が
書き込まれています。それをプログラムといいます。
メモリーには0,1の機械語で命令が入っているのですが、人が作業するときには
作業しにくいので、機械語をわかりやすい言葉に置き換えたアセンブラや
高級言語であるC言語などでプログラミングを行います。
CPUが実行できる命令は、大まかに「演算」「分岐」「データ移動」「ビット操作」
等があります。
| 演算 | ADD | 加算 |
| SUB | 減算 | |
| AND | 論理和 | |
| データ移動 | LD | レジスタ間、メモリ間の移動 |
| IN | IOポートのデータを取得 | |
| OUT | IOポートへデータを出力 | |
| 分岐 | JP | 指定された番地へジャンプ |
| CALL | 指定された番地へのサブルーチンへジャンプ | |
| RET | サブルーチンを終了し、元へ戻る | |
| DJNZ | レジスタが0なら次の命令、0以外はジャンプ | |
| ビット操作 | RL | データを左へ論理シフト |
| SET | 指定されたビットを1へ |
※Z80の場合
Z80Z80は、ザイログ社が作成した8ビットのCMOS型CPUです。 アマチュアが扱うCPUとしては最も有名なうえ、Z80専用の周辺LSIも |
コンピュータというのは、今まで紹介したCPUとメモリを組み合わせることで
動作させることができます。しかし動作したとしても、その動作の結果が
外部に取り出せないと、コンピュータとして何の役にも立ちません。
逆に、外部からの信号によってコンピュータが動作して欲しいときもあるでしょう。
そこで、コンピュータと外部とのやりとりをするのがIOポートです。

上の写真のIOポートは、Z80というCPUと組み合わせて用います。
このデバイスでは、ポートA,B,Cの3つがあり、それぞれ8本の
入出力のできるピンを持っています。
IOポートの操作方法はメモリーに似ていて、メモリーの1アドレスに相当するのが
1つのポートになります。このポートに8ビットのデータを書き込んだ場合
そのデータがポートに出力されます。
逆に読みとりを行うと、ポートの0,1信号を知ることができます。