バンクメモリー
読み:バンクメモリー
外語:bank memory

 バンク切り替えによって容量を拡張するメモリーのこと。
目次

概要

基礎
 例えば、アドレスバスの幅が決まっているが、その範囲ではメモリー容量が足りないような場合、あるアドレスの範囲を2次元的に拡張する方法が取られる。これがバンクメモリーである。
 CPUから見れば同じアドレスのある範囲を、スイッチにより複数のメモリーページを切り替えて割り当てる。こうすれば、そのページ数の分だけ、メモリー容量は拡張できることになる。

技術
 例えば4Miバイトのメモリーを新たに追加するとする。これを小さな領域に分割する。例えば16Kiバイトごとに、256分割するとする。
 この時、CPUからアクセス可能なアドレス範囲の「どこか」に、16Kiバイト分の「窓」を用意し、ここに拡張されたメモリーの一部(1ページ)を覗かせる。この時、必要に応じて覗かせるページの番号を256種類から選択できるようにする。
 かくして、窓の大きさだけどこかに用意できれば、都合、窓の大きさ×バンク数のメモリーを(使いにくいが)扱うことが可能となるわけである。

特徴

PIC
 例えばPICを例とする。
 PICの内蔵メモリー用のポインターは7ビットしかなく、最大で128バイトしか使えない。しかし、2または4ページでバンク切り替えすることで2倍または4倍のメモリーを扱えるようにした製品がある。
 またプログラム領域も同様である。製品によって異なるが、よくある製品ではポインターが10ビットしかないため、容量は1Kiワードに制限される。しかし同様にバンク切り替えで2倍、4倍などに拡張した製品がある。

MS-DOS
 MS-DOSは16ビットOSであり、最大でも1Miバイトまでしかメモリーが使えない。しかも全領域にメモリーがあるわけではなく、実質はコンベンショナルメモリーの容量、つまり640Kiバイトの制限がある。
 しかしこれではメモリー容量が不足したため、様々な拡張方法が模索された。代表的な成功例が、次の二つである。
 特によく使われたのは後者EMSである。

再検索