X68K DMAC(HD63450)がバスマスタの時の格安ロジアナによるバス観測 その2
目次
第二弾になるのですが、前回、DMAがマスター時のASXが観測できていなかったので、再取得版です。
ASX信号をソケット側でプローブする事で見えます
前回、下記記事にてDMAC(HD63450)がバス権を取得した際の波形をロジアナで観測したのですが、DMACにバス権が移動した後のASXが"L"になってませんでした。これはXellent30sボード側でMPUの信号を一旦バッファしているので、"H"になってるのではないかと予想しました。
spend-carefree.hatenablog.com
ソケット側(X68Kのマザーボード側)のASXにプローブを当てて確認しました。
下の絵になります。DMACがバスマスタ時にもASXが"L"になってますね。
DMAC側がバスマスタになった際のDMACが駆動しているASXが見えるようになりました。
図の①がDRAMからADPCMデータをリードしているバスサイクル。②がそのデータをADPCM(OKI MSM6258V) へライトしているバスサイクルだと思われます。
波形を見るとDTACKが返ってくるタイミングはDRAMへのアクセスよりもADPCMへのアクセスの方が遅い事が分かります。
DTACKX、ASX信号はソケット側とMPU側でタイミングに違いがあるのか
表題の事が疑問になりました。というのはXellent30sを載せると68000モードであっても載せる前後で処理速度が若干異なった記憶があったからです。(Xellent30sを載せると少し遅くなった記憶です。power.xの数値でです。体感では分かりません。)
ASX_MPU:
MPU側の足でプローブしたASX信号(Xellent30sに載っているMPU68000の信号)
ASX_SOCKET:
ソケット側でプローブしたASX信号(マザーボード側のソケットの信号)
DTACKX_MPU:
MPU側の足でプローブしたDTACKX信号
DTACKX_SOCKET:
ソケット側でプローブしたDTACKX信号
この絵はMPU側がバスマスタ時に観測している波形ですので,ASXはMPUが駆動。DTACKX側は他デバイス(おそらくDRAM)が駆動している信号になります。
なんとなくASXはソケット側が遅れていて、DTACKXは両者ほぼ同じに見えます。しかしなんとなくそう思えるだけで、ASXは両者同時に動いてるエッジもあります。使用しているロジアナの解像度が24MHzなので、見ても正しく結果をとらえることが出来ていません。
しかし、時々ASXはソケット側が遅延しているというこの結果は、ソケット端ではMPU側よりASXが少し遅延しているという事から得られた観測結果であろうと思います。ASXはXellent30s上で一旦バッファICを噛んでいます。(回路を見たわけでも、ボードの配線を追ったわけではありませんが、DMACマスター時にMPU側のASX信号は"H"のままだったという結果から)。そのため、送信側のMPU側より若干ソケット側では遅延しているのだと思います。
一方DTACKXはマザーボード側と直結しているのでほとんどのエッジが同時タイミングなのだと思います。(この絵ではエッジが18回登場しますが、ずれているのは3回)
ASXの若干の遅延が他デバイスへのアクセスが遅れる事でデバイス側の(非同期な)DTACKX出力が遅延してpower.xでの速度計測結果が少し遅くなるという結果に繋がっているのではないかと思われます。遅くなったというのは僕の古の記憶であり、記憶自体が改ざんされている可能性があります。ボードを外す機会があれば確認してみたいところです。
これらの記載事項はあくまで推測です。と最後に予防線を張っておくのでした。
以上になります。