「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



なんと頭のいい!!

http://www.pentax.jp/japan/news/2011/201107.html

さすがオイラのペンタックス。凄いことを考える
もんだなぁ。赤道儀が無くても簡易的な追尾撮影
が出来ちゃうなんて…

ペンタックスは撮像素子式の手振れ防止だからできる
仕組み。これがキャノンみたいに光学式手振れ防止だと
原理的に不可能なんだなぁ。こんなことまで考えた
上でペンタックスは撮像素子側の手振れ防止を採用
したのかなぁ?

で、オイラのK-7はこれ使えるのかなぁ?デフォルトで
使えないにしても、ファームアップで使えるようには
出来そうな気がするんだけど…
で、いくらなんだろう?気になる…


ふとまたタイプトリップ。
http://retrocomputerpeople.blog.so-net.ne.jp/2009-09-10
PC-DOSって高校生がつくったんだ…すげぇ。

http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%AA%E3%83%BC%E3%83%A9%E3%83%9C
キャリーラボ。ちゃっくんぽっぷ移植したのって
キャリーラボだったのかぁ。このBASE-80って、
面白いなぁ。アセンブラのプリプロセッサみたいな
感じなのかな?
Z-80だとレジスタの数とか、レジスタの直交性とか
の問題とかからむしろ使い勝手がよくなさそうな…
AVRみたいなレジスタ構成のCPUの方が向いている
んじゃないかな?

そんなプリプロセッサがあれば、命令表とにらめっこ
しながらコード書く必要ないのにな…。



というわけで、今日はオイラ謹製128点FFTアセンブラ
ライブラリのカスタマイズに手を動かす…。命令表と
にらめっこしながら。

8ビットレジスタの加減算で、+127~-128のレンジから
はみ出たら、それぞれ+127、-128に強制的に圧縮して
しまうというロジックを挟み込む。

固定小数点のFFTでは、1段計算するごとに1/2倍(右に
1ビットシフト)することで8ビットレンジから
あふれないようにしているんだけど、窓関数掛けたり
とか色々している都合、どうしても出力レンジが
狭くなっちゃう…その対応として、途中1~2段分は
1/2倍の計算を端折ることにして、いざレンジが
はみ出ちゃったら圧縮しちゃうっていう作戦。

で、まずは落書き帳に表を書いて、計算結果とフラグ
の変化を纏めてみる。うん。Vフラグを参照すれば
はみ出ることが検知できそうだ。

で、命令表を見ながらVフラグでブランチする命令を
探してみると…見つからん…

チョイチョイ使うCフラグやZフラグ、はたまた
この間初めて使ったSフラグ用であればBREQとか
BRGEとか、もはや命令表を見ずにソラで出てくる
命令がある一方、ブランチできないフラグがあるの?
とかしばし呆然としてしまった…

ら、好きなフラグレジスタでブランチ出来る命令が
ちゃんとあった。BRBCとBRBSね。こんな命令、知らん
かった…。データシートはちゃんと見ないとね。

SREG中の何ビット目のフラグかを指定する形式だから
コードの見易さはイマイチだけど、要望どおりの
命令がちゃんとあったよ。まぁ、そりゃそうだよね。

ちなみにコードのバイナリ値を眺めてみると、例えば
Cフラグ(SREGの0ビット目)なら、BRBC/BRBS命令を
Cフラグで使用するときと同じコード(下位3ビットが000)
になってる。予想どおり。
まぁ、あれだね。Vフラグみたいに専用命令が
設けられていないフラグには、見易いマクロでも
組んでおけばいいのかもしれない。おいらマクロは
嫌いなんだけど。


見つかったところでコードを書き進めてみる。

当初より512クロック増加するってレベルで
組み込むことが出来てホクホク。まぁ、+127~-128
からはみ出るケースがあるともっとクロック数は
増える恐れがあるんだけど、そういうケースは
ほぼないし、万一あった場合に計算処理が破綻
しないための作りこみだから、
      「通常発生することは無い」
という前提で組んじゃって問題なし。

とりあえずまた1歩前進。


うーん、一つ気になるのは、この出力結果で複数の-128
(2進数で0b10000000)が生じた場合、その後続の
加減算処理でたまたま((-128)+(-128))を行うと処理
が破綻しないか?ってこと。
-128の場合には強制的に-127で上書きしてから処理
すれば破綻しないのはわかってるんだけど、毎回それを
やると動作クロックが大幅に増えちゃう…

シミュレーション掛けながらしばらく考えてみよう…
まぁ、いくらでもやりようはあるわけだから、あとは
動作クロックをどれだけ削れるか…だな。



コメント ( 0 )




http://headlines.yahoo.co.jp/hl?a=20110607-00000001-mycomj-sci

理化学研究所で、反物質の水素を作り出して1000秒
閉じ込めることに成功とのこと。

うーん。コレまでの反陽子や陽電子って、消滅までの
時間が極々わずかな時間だったと思うんだけど、1000秒
ってすごいねぇ。15分近くってことだもんなぁ。


こうやって基礎科学の進歩が進むにつれて、徐々に
ブルーノアやテレザートのテレサが開発される日も
近づいてきているのかもしれない。




コメント ( 0 )