コンピュータ・アーキテクチュア(7)

(7)2018.11.12
藤木 文彦

 2進数での負の数の表現・浮動小数点表現

負の数の表現法について、先週の最後に行った部分を復習します。

小数点のついた数の表現法について計算法を説明します。
(これは、教室で書くので、写して下さい)

 CPUのビット数






 アドレスを指定するときには、16進数を使います。

 0〜F までの1桁の16進数では、 16個のアドレスを指定できます。
 00〜FF までの2桁の16進数では 16×16 = 256個のアドレスを指定できます。

 なお、「8ビット=1バイトのメモリに対して、1つずつアドレスを割り当てていく」ので、16ビットCPUでは、一度に、2バイトのメモリ=2つの連続したアドレスに配置されたメモリ、を使います。32ビット、64ビットCPUでも同様の方法をとります。

 そのため、能率的な、メモリアクセスのために、一度に、複数バイトを取り出す方法や、プログラムの配置アドレスが、半端な場所にならないようにする工夫(後の回で詳しく説明)などが、されています。

【演習】
 0000 〜 FFFF までの4桁の16進数では、何個のアドレスを指定出来るか求めなさい。

 上記の数のアドレスを用いると、最大 何KB のメモリを指定できるか。(概算でよい)

上記で計算したメモリの大きさは、最近のPCで使う容量としては、かなり小さい。もし、16進6桁でアドレスを現すと、どれだけの容量のメモリを使用できるか。MBで応えなさい。数値計算は正確でなくて、大体でよい。

 メモリの組み合わせ


 CPUのビット数により、一度にメモリとの間で転送するバイト数が異なります。
 例えば、16ビットCPUでは、2バイトずつ組み合わせ、
 32ビットCPUでは、4バイトずつ組み合わせます。

 しかし、どのように組み合わせても良いわけではありません。
 アドレス 0000 番地から2バイトずつ、あるいは、4バイトずつ組み合わせて使用します。

 これは、例えば、データが小さく、途中のメモリを使用しない場合でも、間を詰めることは出来ません。これは、きちんとした規則に従ってデータが格納されていないと、データの効率的な転送ができないからです。





 メモリの構造


 メモリには、各種のものがありますが、大体、次のように横長のボード上に、メモリICを配置した物です。
 メモリICは、大抵、8個ないし9個並べられ、物によっては、両面に配置されているものもあります。
(ノートPC用のメモリは、構成が若干違います。)

 また、制御のためのICもいくつか配置されています。

 何故、メモリは、8個ないし、9個を単位として、1組になっているのか、というと、8ビットデータを1ビットずつ記憶するためで、9ビットのものは、記憶内容にエラーがあった際に検出するためのビットが1ビット付加されるからです。



 メモリチップの内部には、記憶素子が多量に配置されています。




 メモリの種類 DRAM SRAM ROM など


 メモリには、大きく分けて、

ROM 内容の消えないメモリ
RAM 内容を書き直せるメモリ

 がある。
 さらに、RAMの中には、何種類かの構造のものがあり、主なものとして、DRAM、SRAMなどがある。
 さらに、DRAM の中にも、内容の読み書きの方法や、タイミングなどによって、各種のものがあるが、詳細は、後日説明する。


 以下の図面は、
http://dream-electric.oops.jp/senmon3.html
 より、引用させていただいた。(このページの後半に、構造に関する詳しい説明が有るので、目を通しておくと良い。)

■DRAMの特徴
 コンデンサという電気を蓄える装置を用いて、データを記憶する。

 長所:構造が簡単で、安価に大容量のものが作りやすい。
 短所:記憶したデータは、時間が経つと(数十ミリ秒)消えてしまうので、頻繁に内容の書き直し(リフレッシュという)を行わなければならない。

DRAMの構造

DRAMの構造

DRAMの回路図

メモリ構造の説明ページ














■SRAMの特徴
 トランジスタ(実際はFET)回路を用いて、状態を記憶する。

 長所:リフレッシュ無しで、記憶を保持することができる。
 短所:構造が複雑で、大容量化しにくい。

SRAMの構造


■ROMとは
 ROMとは、データの内容が書き込まれていて、書き直しの出来ないものである。電源を切っても内容が消えない。製造時に、内容を書き込んでおくか、後から、一度だけ、書き込むことができるようになっている。(一部、書き直しの可能なものもある。)


CPUの進歩に伴い、一度に扱えるデータの桁数(ビット数)が増えてきました。
しかし、一度に扱えるデータのビット数が、16ビット、32ビット、64ビットと増えても、メモリ自体は、8ビットのメモリ素子を使用しています。
16ビットでは、2組、32ビットでは、4組などを一度に使います。(後述)

 なぜ、そのようにしているのかというと、「互換性」の問題があるからです。
「互換性」には、2つの面があります。
 ・ハード的側面 今までの8ビットメモリをそのまま流用出来れば、CPUに応じた各種のメモリを開発する必要がなく、機械の設計も、制作コストも、押さえることができます。
 ・ソフト的側面 CPUのビット数が変わっても、新たにソフトを開発する必要が無く、今まで使用していたソフトウエアをそのまま使うことが出来るので、開発側も使用する側も、CPUのビット数の変化を、あまり気にしなくて済む、という利点があります。(そうでないと、開発する側は、CPUのビット数にあわせた各種のソフトを開発する必要があり、使用する側は、CPUに合わせて、各種のソフトを購入し、使い分ける面倒があります。)

 このような方法をとることで、CPUは、8ビットから16ビットへ、そして32ビットへと、自然に、移行し、混在使用することが可能となったのです。現在でも、PCでは32ビットCPUが主流になっていますが、8ビット、16ビットのCPUも各所で使われています。


 メモリとその他の記憶装置


 コンピュータの基本的な部品として、メモリがあります。
 メモリには、プログラムやデータなどを一時的に置いておき、CPUとの間で、高速に転送しながら、プログラムを実行していきます。
 通常のメモリは「BIOS」というメモリを除き、書き換えが出来ますし、電源を切ると内容は消えてしまいます。(RAMという種類のメモリ)
(注:電源を切っても内容の消えない種類のRAMもあります。また、BIOSも、方法によっては書き換えが出来ます。)

 多量のデータを記憶する装置としては、HDD(ハードディスクドライブ)があります。
 また、CPU内部に置かれ、計算速度を速めるためのメモリとして、「キャッシュメモリ」があります。

 これらの関係を模式図で表すと、次のようになります。(概念図ですので、途中の必要な部品等を一部省略してあります。)




i3では、
L1キャッシュ 64KB
L2キャッシュ 256KB
L3キャッシュ 8MB

http://ja.wikipedia.org/wiki/Intel_Core_i7


 本日の課題


 本日は、以下の課題について、メールで報告して下さい。これが、出席点となります。(課題の中には、授業中に口頭で説明する部分が含まれています。)

 宛先 fujiki.kougei@gmail.com
 タイトル arch7


 課題:

 1) 2進数で、小数の、 1.6125 を表しなさい。

 2) 0000 〜 FFFF までの4桁の16進数では、何個のアドレスを指定出来るか求めなさい。

 3) 4GBアドレスを表すには、何ビット必要か。16進数では何ケタになるか。

 4) CPUのバイト数が、変わっても、メモリは、8ビットを単位に構成されています。その理由を掲げなさい。