システムクロック

  • バスクロック = 約 33MHz
  • ARM7 クロック = 約 33MHz (バスクロックと同じ)
  • ARM9 クロック = 約 66MHz (バスクロックの2倍)

ARM9からバスにアクセスする場合、半分の速度になります。 IOポートにアクセスする場合、場所によってはさらに遅くなります。 キャッシュと TCM(Tightly Coupled Memory:CPUコアに直接入ってる高速メモリ) が効いてる場合のみフルスピードで動くようです。 バスクロックは、正確には33.513982 MHz (1FF61FEh Hertz)らしいです。


ARM の CPU の特徴


Thumbモード

ARMのCPUには、通常の32ビットモードと、Thumb(サム)モードというのがあります。 Thumbモードというのは、16ビット長の命令セット呼び出しモードのことで、これを使うことでメモリの節約ができます。また、Thumbモード時は動作速度も上がることがある(メモリアクセスが16ビット単位に制限されている環境のみ。DSではむしろ遅くなるかも)そうです。

バレルシフタ

レジスタからALUにデータを渡す直前に、バレルシフタと呼ばれる仕組みを通すことによって、レジスタの値を前処理(左か右に特定の回数シフト)できる。アセンブリ言語的には命令の拡張(例:MOV命令のオペランドにLSLなどのバレルシフタ命令を入れる)によってこれを使用する。

密結合メモリ(TCM)

メインメモリへのアクセスはバス速度により制限され、CPUのクロックより遅くなります。 TCMはARM9のコアに直接入ってるメモリ(らしい)で、CPUクロックと同じ速度で動作します。キャッシュと違いプログラマが内容をコントロールできるらしいです。命令コード用TCM(ITCM)とデータ用TCM(DTCM)があります。TCM内に完結した状態でCPUが動作している間はバスが空くので、DMAコントローラを同時に動作させることができます。

コプロセッサ15(CP15)

メモリ管理用のコプロセッサです。 キャッシュのON/OFFなどをコントロールします。 CP15自体にコントロール用レジスタを持っていて、CPUからこれに値を書き込むことでCP15の動作を制御します。CDP,MRC,MCR,LDC,STCがコプロセッサとCPUのレジスタの間でデータをやりとりする命令です。

ARM名前付け規則

属性説明
DJTAGを使用したデバッグ可能
E拡張DSP命令サポート
Fハードウェアによる浮動小数点演算サポート
IEmbeddedICEセルによるハードウェアブレークポイント・ウォッチポイントの設定可能
JJazelle によるJavaバイトコードサポート
Mロング乗算命令サポート
-S合成可能なハードウェア設計
TThumb命令サポート

※ARM7TDMI以降はTDMIと書いてなくてもTDMI機能を持っている

リンク

CPUコアMMU/MPUキャッシュJazelleARM ISAThumb ISA
ARM7TDMIv4Tv1
ARM946E-SMPUキャッシュ+TCMv5TEv2

※ISA = 命令セットアーキテクチャ ※JazelleとはJavaバイトコートサポートのことです

参考文献


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-27 (日) 17:45:12 (1452d)