arm のマニュアル

ええと今日はこれから ARM926EJ-S™ Technical Reference Manual を確認させて頂きます。
控えを以下に列挙してみる。

確認

なんですが、ARM9 というプロセッサの仲間は

  • VFP9-S
  • ARM9E-S
  • ARM9TDMI
  • ARM920
  • ARM922
  • ARM926
  • ARM940
  • ARM946
  • ARM966
  • ARM968
  • MOVE Coprocessor

というソレ達が居らっしゃるのでしょうか。あと、目次をざっくり以下に。

  • Introduction
  • Programmer's Model
  • Memory Management Unit
  • Caches and Write Buffer
  • Tightly-Coupled Memory Interface
  • Bus Interface Unit
  • Noncacheable Instruction Fetches
  • Coprocessor Interface
  • Instruction Memory Barrier
  • Embedded Trace Macrocell Support
  • Debug Support
  • Power Management
  • Signal Descriptions
  • CP15 Test and Debug Registers

何故か Programmer's Model の中に Register descriptions という項があるんですが、そこが CP15 な命令のマニュアルみたくなってたんですよね。微妙に謎。

About the programmer's model

  • CP15 は control coprocessor なのか
    • ARM926EJ-S の設定とか制御に使われるとのこと
      • caches
      • Tightly-Coupled Memories (TCMs)
      • Memory Management Unit (MMU)
      • その他モロモロ
  • CP15 レジスタへのアクセスは特権モードでは MCR と MRC 命令のみとのこと
    • Undefined instruction exception がナニらしい

どうもこの Programmer's Model の章では CP15 なソレについての記述が中心。あと、2.3. Register descriptions な記述を以下に引用しときます。

ID Code, Cache Type, and TCM Status Registers, c0
Control Register c1
Translation Table Base Register c2
Domain Access Control Register c3
Register c4
Fault Status Registers c5
Fault Address Register c6
Cache Operations Register c7
TLB Operations Register c8
Cache Lockdown and TCM Region Registers c9
TLB Lockdown Register c10
Register c11 and c12
Process ID Register c13
Register c14
Test and Debug Register c15.

MMU

Chapter 3. は Memory Management Unit について。

About the MMU
  • 仮想メモリの実装を provides 云々
  • これってハードウェアなレベルでアドレス変換とか権限チェックとかその他モロモロのナニを実装してるんですかね
  • MMU は Translation Lookaside Buffer (TLB) も実装している模様
    • 仮想アドレスをサポートしているハードウェアは例外なく TLB を持っている、と Linux2.6 カーネル解読室には記述がある
  • single unified とあるので、デフォだと単一のナニしか MMU ではサポートしない模様
    • 特権モードとユーザモードの両方をカバーするために二段階のアドレス変換を用いている模様
  • MMU は以下を実装
    • v4 と v5 の MMU な機能
    • 1MB (sections)、64KB (large pages)、4KB (small pages)、1KB (tiny page) な mapping size をナニ
    • CP15 の c8 レジスタを使うと TLB 全体を無効にできる
    • CP15 の c10 レジスタを使うと TLB をロックできる
ええと

ここ、酒呑みながらで読むソレではない事をようやく把握しました。明日日中でがっつり読ませて頂ければ、ってことで。