メディア

シングルバンクとデュアルバンクの違いQ&Aで学ぶマイコン講座(65)(2/4 ページ)

» 2021年09月30日 11時00分 公開

バンクとは?

 バンク(Bank:土手、堤)とは、メモリ領域を論理的に区分けする方式のことです。具体的な方式や定義は半導体メーカーごとに異なるため、呼び方もさまざまです。一般的には、メモリバンク(memory bank)と呼ばれますが、単にバンクと呼ばれることもあります。

 メモリ領域を論理的に区分けする方法としては、バンクの他にページやセクター、セクションなどがありますが、バンクの場合は、ハード的にほとんど同じ構造のメモリを2つ以上使って区分けしている場合が多いです。そのため、独立した動作が可能であることが大きな特徴です。

 バンクは、マイコンに限らず、コンピュータシステム全般で使われています。例えば、システムのメモリにメモリチップ(IC)を使用している場合は、メモリチップ毎に区分けして、バンクを定義する方法などがあります。一方、マイコンでは、内蔵メモリ(フラッシュメモリやRAMなど)のモジュールを2個以上使って、決められたアドレス領域を区切ってバンクを定義します。外部メモリをアクセスできるマイコンでは、外部メモリをバンクとして区分けしている場合もあります。

 バンクは、アドレス領域の割り当て方で使い方が変わります。割り当て方は、主に次の2通りです。

(a)同一アドレスを複数のバンクに割り当てる場合

(b)異なるアドレスを複数のバンクに割り当てる場合

同一アドレスを複数のバンクに割り当てる

 2つのバンクに同一アドレスを割り当てた例を図2に示します。

図2:同一アドレス領域にバンクを割り当てた場合(クリックで拡大)

 バンク1とバンク2に同じアドレスが割り当てられるため、CPUはバンク1とバンク2の同時使用はできず、どちらか一方を選択して使用することになります。そのため、どちらかを選択する切り替え回路が必要です。

 図2では、バンク切り替えフラグを設けています。レジスタなどの1ビットをバンク切り替えフラグに割り当て、このフラグが「0」のときは「バンク1」、「1」のときは「バンク2」が選択されます。CPUは、バンクの領域にアクセスする前に、バンク切り替えフラグを「0」か「1」に設定し、バンクを選択してからバンク領域にアクセスします。

 この方式だと、複数のバンクに同時アクセスできませんが、既存のシステムでアドレスバスの本数を増設できない場合に、簡単にメモリ領域を増やすことができます。

 また、すでに市場に出ている製品とアドレス領域の互換性を保ちつつ、メモリ領域を増やすことができます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.