Hatena::Groupecrafts

Chuckの電子工作

趣味の電子工作を中心に書いています。音関係工作はg:emusic:id:Chuckどうぞ。


検索エンジンより飛んでこられたかたで、お探しのキーワードが見つからないかたは、↑の検索をご利用ください。

2006-02-20

メモ

いやー、よくわからないことがいっぱい←ちゃんと勉強していないからですが。

シミュって実行速度

GNU ARMなKEILの環境で、DACsine.c のデモを動かして、disassembly のステップ実行で whileループの1周の時間のexecution profiling。

POWCON = 0x0000 で
1サンプル(sine LUTが1進む) 0.528usec
POWCON = 0x0001 で
1サンプル(sine LUTが1進む) 1.056usec
POWCON = 0x0003 で
1サンプル(sine LUTが1進む) 4.213usec

POWCON = 0x0000 のときで 1ステップあたり、0.048usec というのが最小単位でした。20.8MHz。

測ってはみたものの、パイプラインのどこをどう測っているのかわからなかったりしていますが、ステップ実行とrun/break で出てくる時間が同じということで、ふむふむ。

スピードでoptimizeしたら

もう少し速くなりました。

AMBAとかペリフェラルとか

ADuC7026のデータシートを見るとMMRペリフェラルアクセス速度に関しては、バスアクセスのAMBAを見ろ、と。

そういえばDWMのgcc記事に ROMで動かすよりも RAM で動かすほうが速いとの記述(p.101)。なぜだろう。どちらも AMBA AHB にぶら下がっているのではないのかしら。ROMはwaitかかっているとか?

p.51の1サイクルでアクセス可能、というのもよくわからなかったり。アドレスとデータでフェーズ分かれて 2-HCLK 要るんではなかったかしら、って AHB を勉強しろということですか、そうですか…

APBはともかくAHBは忘れてAXIに切り替えたいのだけれど…

マクロマクロ2006/02/20 19:38ROMは16BitでRAMは32Bit構成らしいです。今回は出遅れて買いそびれてしまってさみしい思いをしてます。

ChuckChuck2006/02/20 19:54マクロさん、ありがとうございます。そうですか、ビット幅がちがいましたか。それなら速度が違って当然ですね。
私の通り道の本屋さんでは、先週の前半はまだまだ平積みの状態だったのですが、もう見当たらない状況ですか?

マクロマクロ2006/02/21 00:03地方住まいでDWMを入れてる本屋が凄く遠いのですが、昨日行ったら売り切れでした。FPGAのときは売れてるようには見えなかったんですが、ARM-CPUだと興味を持つ人がいたようですね。

ChuckChuck2006/02/21 06:44そうですか、残念ですね…

ChuckChuck2006/02/21 06:45ROM 16bit幅、RAM 32bit幅の記述をDWM記事中 複数で見つけました。ちゃんと読まないとダメですね>自分。
さっそく Thumb でコンパイルしてみたら 50.7kHz の正弦波が得られました(KEILシミュレーション)。

RJBRJB2006/02/21 08:14なるほど16bit命令だと読み出しが早くなるのですね。実機でもその速度が出るといいのですが…

ChuckChuck2006/02/21 10:03実機はいったいどこで速度が落ちているのでしょうね… settling time 10usec でも 100kHz は行けるはずですよね。

RJBRJB2006/02/21 22:10このサンプルだと64sample/periodなので、セトリングスペック的には100kHz/64=1.56kHz程度となるような???

ChuckChuck2006/02/21 23:16おお、おっしゃるとおりです。
そうすると速い方で10kHz出るのがこれまた謎です。

トラックバック - http://ecrafts.g.hatena.ne.jp/Chuck/20060220