計算機ハードウエア
2019年度前期 第5回前回の話
CPU メモリ I/O (Input/ Output) データバス アドレスバス コントロールバスコンピュータバスの構成
コンピュータバスは、コンピュータ本体(CPU)と、そのコンピュータ本体とデータのやり取り をする複数の相手との間を結ぶ、共用の信号伝送路である。 CPUは【バス】を制御して、複数のデバイス(メモリやI/O)とデータのやり取りを行う。 各デバイスには、識別用の【アドレス】が付けられている。 SH7145 コンピュータアーキテクチャ(アルファプロジェクト AP-SH2F-6A ボード) CPU(SH7145) クロック用クリスタル メモリ データバス(32 bit) アドレスバス (22 bit) I/Oアドレス バス(22 bit) インタフェース データバス (16 bit) リセット信号 割り込み信号 コントロールバストライステート状態の応用例
データバス アドレスバス 周辺機器 アドレス デコーダ (Address decoder) バスバッファ (Tri-State) 周辺機器バスバッファ(Bus Buffer)は、アドレスデコーダ(Address decoder)の選択信号 によって、データ信号を有効(Enable)、無効(Disenable=Tri-State) にしたり、 データ信号の方向(Direction = Input / Output)を決定する。
組み合わせ回路: マルチプレクサ (Multiplexer)
n 本の選択線を用いて 2n本のデータ入力線の中から 1本を選択して出力する回路 2n(=m) 入力から1出力を選択するマルチプレクサを 「m×
1 マルチプレクサ」 という D0 D1 D2 D3 Q S1 S0 S1 S0 Q 0 0 0 1 1 0 1 1 D0 D1 D2 D3Q0 Q1 Q2 Q3 D S1 S0 S1 S0 Q0 Q1 Q2 Q3 0 0 0 1 1 0 1 1 D 0 0 0 0 D 0 0 0 0 D 0 0 0 0 D
組み合わせ回路: デマルチプレクサ (Demultiplexer)
n 本の選択線を用いて1本のデータ入力を 2n本のデータ出力線 のうちの1本に出力を接続する回路 Multiplexer: 多くの入力の中から必要な入力を取り出す切り替えスイッチに 相当する機能を持ったデバイス Data selector とも言う Demultiplexer: 1つの入力を多数の出力端子に切り替えてデータを分配する 機能を持ったデバイス 情報をある一定の規則によって数値化(2進数列)にする回路 (暗号器とも言う) 例) 3 bit エンコーダ組み合わせ回路: エンコーダ(Encoder)
D0 D1 D2 D3 D4 D5 D6 D7 Q2 Q1 Q0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 例) キーボード エンコーダ組み合わせ回路: エンコーダ(Encoder)
例) キーボード エンコーダ Row3 Row2 Row1 Row0 Col 0 Col 1 Col 2 Col 3 2進数列の暗号(コード)を元の情報に戻す回路 (復号器とも言う) 3進 3bit デコーダの真理値表組み合わせ回路: デコーダ(Decoder)
D1 D1 D0 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1n
bit のデコーダを用いると,2n 個のデバイスを選択する信号を生成できる CPUは、アドレスバスを制御し、【アドレス空間】上での所望のデバイスに アクセスしようとする。 このアドレス信号を復号(【デコード】)して、アクセスを可能にするのが 【アドレスデコーダ】である。 CPU メモリ I/O (Input /Outp ut) データバス アドレスバ ス コントロールバ ス I/O空間 外部メモリ 内蔵メモリ アドレスマップ 010000H~ 010100H 004000H~ 008000H 000000H~ 000100H 例えば、外部メモリにアクセスしたい場合には、アドレスバスの信号が 004000H~008000Hの間では、メモリモジュールが選択されるように 組み合わせ回路を実現する。 例えば、アドレスバスが 32 bit バスだった場合、【アドレス空間】は2
32 = 210×
210×
210×2
2= 4 G
のアドレスがあり、 メモリのデータ幅が 32 bit で、すべてのアドレスがメモリに 割り当てられている場合であれば、 このシステムは、32 bit ×4 G = 16GB の メモリを持つことになる。 I/O空間 外部メモリ 内蔵メモリ アドレスマップ 010000H~ 010100H 004000H~ 008000H 000000H~ 000100H今回の話
記憶素子(memory) の話
ディジタル計算機での記憶素子 • RAM (Random Access Memory)
SRAM (Static RAM) レジスタ,キャッシュなど DRAM (Dynamic RAM) 主記憶(main memory) • ROM (Read Only Memory)
マスクROM Unerasable PROM (Programmable ROM) Erasable
切断型PROM 1回のみ書き込み可能 (Writable at once) EPROM (Erasable PROM) 紫外線で消去可能
(Erasable with Ultra Violet ray) EEPROM (Electrical EPROM) 電気的に消去可能
(Electrically Erasable) フラッシュROM 電気的に消去可能
(Electrically Erasable)
RAMの話
SRAM
(Static RAM)
フリップフロップ回路(Flip-Flop)
で構成される
ライト時:データ(1or0)をデータ線に出力し、ワード線に電圧(Vcc)を印加 トランジスタ(Tr1)のソースとドレインが導通 データが図のP点に出力される 出力されたデータはフリップフロップ回路により保持 リード時:データ線を開放し、再びワード線に電圧を印加 Tr1のソースとドレインが導通し、保持されている出力点のデータが データ線に出力される データ線 Tr1 出力 ワード線
RAMの話
DRAM
(Dynamic RAM)
トランジスタとキャパシタ
で構成される
キャパシタ(Capacitor)に蓄えられた微小な電荷でデータを記憶(保持)する 読み出し動作が複雑 記憶を維持するために「リフレッシュ(refresh)」という操作が必要 ロウ(row:行)とカラム(column:列)に分けてアドレッシング(addressing)を行なう データ線 ワード線 データ線 ワード線 ワード線 データ線
パソコンの中のメモリモジュール
パソコンの中では、SDRAM が用いられており、その規格は、凡そ以下のようなもの DDR SDRAM チップ規格 モジュール規格 動作周波数 転送速度 DDR200 PC1600 200MHz 1.6GB/s DDR266 PC2100 266MHz 2.1GB/s DDR333 PC2700 333MHz 2.7GB/s DDR400 PC3200 400MHz 3.2GB/s DDR2 SDRAM チップ規格 モジュール規格 動作周波数 転送速度 DDR2-400 PC2-3200 400MHz 3.2GB/s DDR2-533 PC2-4200 533MHz 4.2GB/s DDR2-667 PC2-5300 667MHz 5.3GB/s DDR2-800 PC2-6400 800MHz 6.4GB/sパソコンの中のメモリモジュール
DDR3 SDRAM チップ規格 モジュール規格 動作周波数 転送速度 DDR3-800 PC3-6400 800MHz 6.4GB/s DDR3-1066 PC3-8500 1066MHz 8.5GB/s DDR3-1333 PC3-10600 1333MHz 10.67GB/s DDR3-1600 PC3-12800 1600MHz 12.8GB/s DDR3-1800 PC3-14400 1800MHz 14.4GB/s DDR3-2000 PC3-16000 2000MHz 16GB/s DDR3-2133 PC3-17066 2133MHz 17.06GB/s DDR4 SDRAM チップ規格 モジュール規格 動作周波数 転送速度 DDR4-2133 PC4-17000 2133MHz 17.06GB/s DDR4-2400 PC4-19200 2400MHz 19.2GB/s DDR4-2666 PC4-21333 2666MHz 21.3GB/s DDR4-3200 PC4-25600 3200MHz 25.6GB/s DDR4-4266 PC4-34100 4266MHz 34.1GB/sROMについて
EPROM
フローティングゲートMOSFET アレイ (Floating gate MOSFET array) で構成 通常のデジタル回路よりも高い電圧を使って 個々のMOSFETに書き込む UV-EPROM(紫外線消去型) http://electronics.stackexchange.com/que stions/34607/erasing-eproms-with-sunlight フローティングゲート (Floating gate) コントロールゲート (Control gate) ソース ドレイン フローティングゲートMOSFET フラッシュメモリ(Flash memory)は、ここのゲート絶縁膜が非常に薄く作ってある ところが異なる
計算機の中の記憶素子
例えば、インテル製の
Core i7 だと,
非常に高速な記憶素子群がCPUの
チップの上に構築されている
キャッシュメモリ(Cache memory)
演算器(processor)
(含 レジスタ)
キャッシュメモリ
(Cache memory)
主記憶
(メインメモリ:Main memory)CPU
キャッシュメモリからのデータ の読み出しは高速 ~10ナノ秒程度 キャッシュメモリにデータが無い 場合には主記憶からの読み出し となる ~数10ナノ秒かかる ~数100ピコ秒程度アドレスデコーダとバスバッファ
を設計する
アドレスデコーダとバスバッファを設計する
その1
CPU(マイコンなど)の入出力命令MEMRQ:MeMory ReQuest 信号
メモリへのアクセスを要求する信号。Negative Logic RD: ReaD 信号 データ読み込み要求信号。Negative Logic WR: WRite 信号 データ書き込み要求信号。Negative Logic メモリなどの Peripheral Device データ アドレス MEMRQ RD WR データバス アドレスバス コントロール バス バス バッファ アドレス デコーダ
アドレスデコーダとバスバッファを設計する
その2
デコーダ出力 WR データバス アドレスバス データ書き込みタイミングAddress Bus : Fixed MEMRQ : Valid (Low active) WR : Valid (Low active) ⇒Data Bus : Enable
デコーダ出力
RD
データバス アドレスバス
データ読み込みタイミング
Address Bus : Fixed MEMRQ : Valid (Low active) WR : Valid (Low active) ⇒Data Bus : Enable MEMRQ
アドレスデコーダとバスバッファを設計する
その3
アドレス線が16本(A0~A15)あるとする。 アドレス空間は、(0000)H~(FFFF)H の範囲にある。 このうち、(7000)H~(7FFF)Hの範囲にあるメモリにアクセスすることができるような アドレスデコーダを設計してみよう。 I/O空間 外部メモリ (External memory) 内蔵メモリ (Internal memory) アドレス空間 00A0FFH~ 00A000H 008FFFH~ 008000H 007FFFH~ 007000H 最も簡単には、 アドレス線16本のうち、A15~A12 の4本の部分が “7” となったときのみ、メモリをアクセスするように設計すれ ばよい。 7000H ~ 7XXXH ~ 7FFFHA15~A12 A11~A8 A7~A4 A3~A0
ここが“7”
12bit ⇒ 212bit = 4K word メモリ
アドレスデコーダとバスバッファを設計する
その4
I/O空間 外部メモリ (External memory) 内蔵メモリ (Internal memory) アドレス空間 00A0FFH~ 00A000H 008FFFH~ 008000H 007FFFH~ 007000H A15~A12 の4本の部分が 7 = (0111)2 のとき、CS=EN=Low となる回路 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 4K word メモリモジュール 12 CSCS : Chip Select 信号 Negative Logic
D7 D6 D5 D4 D3 D2 D1 D0 バス バッファ 8 EN
EN : Enable信号 Negative Logic
0 1 1 1