システムクロック †
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名前付け規則 †
※ARM7TDMI以降はTDMIと書いてなくてもTDMI機能を持っている リンク †
※ISA = 命令セットアーキテクチャ ※JazelleとはJavaバイトコートサポートのことです 参考文献 †
|