メモリ構造にトップブートとボトムブートの二つがありますが、
これはどのような意味があるのでしょうか?
両者の利点、欠点を教えて下さい。
参考となるサイトでも結構です。
宜しくお願いします。
フラッシュROMはボトムブートタイプを通用使うことが多いのですが、マッピング上はトップブートを使った方が無駄がありません。ボトムブートですと、データ保存エリアに端数セクタが入ってきますので使い勝手が悪いと言うことがあります。
やり方次第ですが、一般に格納するデータの種類に合わせ、小ブロック単位での消去が行えるようにブートブロックを採用することもあります。パラメータやブートプログラム,BIOSなどの小さいプログラムを格納する場合や小単位でも書換えが可能です。これらの小アドレス空間をアドレスの上位に配置したトップブートブロック型と,アドレスの下位に配置したボトムブートブロック型があります。
http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%A9%E3%83%83%E3%82%B...
CPUの種類によって、リセット時に0番地から処理するタイプと最上位アドレスに飛ぶタイプの2種類があるからです。(あるいはリセット時のジャンプベクターのアドレスが0番地か最上位番地かの違い)
トップブートとボトムブート共にブート部のセクターが他より小さくなっていると思います(例 通常が64KB単位であれば、ブートセクターだけ8KBとか16KB単位とか)
そこにジャンプベクターやブート部を入れるようになっています。
http://docs.google.com/viewer?a=v&q=cache:zSbXzV0OdGgJ:edevice.f... TOPブートボトムブート&hl=ja&gl=jp&sig=AHIEtbSUsZTvb3j4F5XdBAha_qoHD-zKAg&pli=1
CPUで決まるのですね。有難う御座います。
CFIの規格によれば、CFIコード中に記述されているセクタ(消去ブロック)の構成は、「何キロバイトのセクタが何個並んで、次に何キロバイトのセクタが何個並んで、その何キロバイトのセクタが何個並んで、・・」という形の情報で記述されています。しかし、その並びの順序を最終アドレスから数えるか、それともアドレス0から数えるかは決まっていないようです。
どうやら、この順序はボトムブートの場合は先頭から、トップブートの場合は最終アドレスから数えるのが一般的のようです。(ただし、この数え方が厳密な規格かどうかは不明)
http://books.google.co.jp/books?id=Kg8bTKCGpWgC&pg=PA54&lpg=PA54...
詳しくはこちらに
ベストな回答です。リンク先で理解できました。
有難うございます。