


暇つぶしで音楽再生ソフトの研究開発をしており、Bug head を自作しています。
サウンドドライバーの仕様変更
XMOS v4.86 v5.00 XMM0 XMM1
XMOS v5.12 v5.30 YMM1 YMM2 YMM3 YMM4 YMM5
2021年夏頃から、従来の XMM0 XMM1 を使用したメモリコピー処理から、XMOS v5.12 以降で YMM1 YMM2 YMM3 YMM4 YMM5 を使用したメモリコピー処理に変更されて、LANケーブル経由のデジタル出力であるDirettaのASIOドライバーでも使われ始め、「音はいい、もっと音をよくできないか?」と言われて、試行錯誤をしてきました。JPLAYやDiretta、Fidelizerのユーザー様から「対策して欲しい」と嘆願書が届いている。
VZEROALL
VPMOVZXWQ ymm0, xmm0
VPMOVZXWQ ymm1, xmm1
VPMOVZXWQ ymm2, xmm2
VPMOVZXWQ ymm3, xmm3
VPMOVZXWQ ymm4, xmm4
VPMOVZXWQ ymm5, xmm5
VPMOVZXWQ ymm6, xmm6
VPMOVZXWQ ymm7, xmm7
VPMOVZXWQ ymm8, xmm8
VPMOVZXWQ ymm9, xmm9
VPMOVZXWQ ymm10, xmm10
VPMOVZXWQ ymm11, xmm11
VPMOVZXWQ ymm12, xmm12
VPMOVZXWQ ymm13, xmm13
VPMOVZXWQ ymm14, xmm14
VPMOVZXWQ ymm15, xmm15
これはAVXの関係レジスタを初期化する VZEROALL と、XMM0 の 16ビット WORD を YMM0 の 64ビット QUAD へゼロ拡張する命令を組み合わせています。VZEROALLだけでは、ジッターになる。ゼロ拡張すると XMM0 の 16ビット WORD を基準に 64ビット QUAD が作られるので、全ビットで同じ電子ビット基準へ揃える根拠によって低ジッターを実現しやすくなります。メモリコピー命令のすべてに影響すると、パソコンの画面でも低ジッターの傾向が出やすい。
同様に、汎用命令でも
XOR AL, AL
MOVZX RAX, AL
XOR SPL, SPL
MOVZX RSP, SPL
8ビットの初期化からMOVZXでゼロ拡張して64ビットの初期化をするほうが、低ジッターになりやすい。
TEAC HR Audio Player で、この方法を採用すると簡単に低ジッターになると思うのだが、、、XMOS v5.12 以降でYMMレジスタの転送方法になった途端に、、、オーディオソフトが全般に重ジッター出力に戻っていく傾向が見られるので、対策してほしいね。
https://teac.jp/jp/product/hr_audio_player/
それでもなんとかしたい!
「BurnAware」CD/DVD/BD対応の無料ライティングソフト - 窓の杜
https://forest.watch.impress.co.jp/library/software/burnaware/
ISO作成、物理 UDF2.6 を指定して、ISOファイルを作り、仮想ドライブとしてマウントして使用する。ZIPを展開する方法は面倒くさいので、いまの Bug head では UDF 2.6 Plain ISO を ZIP で配布して、ISOをダブルクリックで仮想ドライブにして、その状態で使う方法へ変更した。これにすると、仮想ドライブの物理的な電子ビット基準(メモリ基準)は固定されるので、低ジッターになりやすい。
XMOS v5.30 v5.40 Diretta v1.104 は、YMMレジスタ 1-5 を使用するので、USB-DACをやるつもりなら、AVX2対応のCPUでなければならない。TOPPINGはすべて対応するだろうと思っていたら、v5.30 以降でなければ対応しない製品がでてきている。LADDER Schumann では手に入るのは XMOS v5.40 で、対策したものを作る必要があった。
書込番号:24839278
0点

汎用命令でも初期化の方法
XOR al, al
MOVZX Rax, al
これで良いけれど、神社で参拝していると下記のようにしたら、もっと低ジッターになります。
XOR al, al
INC al
INC al
INC al
DEC al
DEC al
DEC al
XOR ah, ah
INC ah
INC ah
INC ah
DEC ah
DEC ah
DEC ah
MOVZX ax, al
MOVZX Rax, al
MOVZX ax, al
ah レジスタって、関係なさそうだけれど、ax レジスタって、物理 ah al の論理レジスタ ax という立場。MOVZX ax, al を実行しますと、レジスタ al のゼロ拡張になりますけれど、インテルCPUのジッターは 論理レジスタ ax の設計がおかしいから起きます。MOVZX Rax, al だけで済むはずだけれど、ジッターになります。初期化としては最後に MOVZX ax, al という命令で、終わると低ジッターになります。これでインテルCPUは16ビットCPUで設計されていて、大規模なメモリ空間をアクセスする用途で、64ビットへレジスタ拡張されていると考えています。
Bug head でも、16ビット CPU として動作するようにコードを記述しますと、なぜか低ジッターになります。10年以上に取り組んできて思うことは、16ビットCPU + FPU + MMX という Pentium 2 構造で設計しますと、ジッター系のトラブルは起きなくなります。
さて、先ほど INC x3 DEC x3 というがあるけれど、これは2ビットスタビライザー処理。INC x15 DEC x15 にしますと、4ビットスタビライザー処理。INC x255 DEC x255 にしますと、8ビットスタビライザー処理。R8-R15とRspRbpRsiRdiについてはやりませんけれど、abcde は ah bh ch dh については同時に INC x255 DECx255 すると、低ジッターはできます。ここにMMX命令を混ぜるとうまくいきます。
MOVQ mm0, Rax
MOVQ mm1, Rdx
MOVQ mm2, Rsp
MOVQ mm3, Rsi
MOVQ mm4, R9
MOVQ mm5, R11
MOVQ mm6, R13
MOVQ mm7, R15
.... XOR AL / INC AL x255 DEC AL x255 / MOVZX RAX, AL
MOVQ Rax, mm0
MOVQ Rdx, mm1
MOVQ Rsp, mm2
MOVQ Rsi, mm3
MOVQ R9, mm4
MOVQ R11, mm5
MOVQ R13, mm6
MOVQ R15, mm7
; (XMM CLEAR process)
MOVQ mm0, Rcx
MOVQ mm1, Rbx
MOVQ mm2, Rbp
MOVQ mm3, Rdi
MOVQ mm4, R8
MOVQ mm5, R10
MOVQ mm6, R12
MOVQ mm7, R14
.... XOR bpl / INC bpl x255 DEC bpl x255 / MOVZX Rbp, bpl
MOVQ Rcx, mm0
MOVQ Rbx, mm1
MOVQ Rbp, mm2
MOVQ Rdi, mm3
MOVQ R8, mm4
MOVQ R10, mm5
MOVQ R12, mm6
MOVQ R14, mm7
; (XMM CLEAR process)
EMMS
これで、MMX命令はFPUレジスタを使っているとされていますので、各レジスタはFPUレジスタを経由した基準に整えられ、低ジッター動作でも、PCIEバスに影響するようなノイズを減らせます。Windowsのメモリ転送処理は、XMMレジスタを根拠に動作していますので、汎用レジスタの状態をXMMレジスタへ影響させたいです。そうすると、もっと低ジッターになります。
; (XMM CLEAR process)
PXOR xmm0, xmm0
MOVQ2DQ xmm0, mm0
PUNPCKLQDQ xmm0, xmm0
PUNPCKLDQ xmm0, xmm0
PUNPCKLWD xmm0, xmm0
PUNPCKLBW xmm0, xmm0
; これを xmm1-15 に対しても適用
QSQ DQ WD BW は様々な型に対してデータを経由するので初期化しておく、物理レジスタへの更新という概念。
AVX2処理で転送する前は、これでやって良くなりました。これでも良くならない場合は、プログラムの最初にヒープメモリの確保などをする時に、Windows内部処理で xmm0 を使用するメモリーコピー処理がありますので、その影響を受けてしまいます。これはWindows内部処理でコピー処理をする前に、プログラムで使用する xmm0 を初期化しておかないと効果は半減します。
書込番号:24847763
0点


このスレッドに書き込まれているキーワード
クチコミ掲示板検索
クチコミトピックス
- 3月28日(火)
- イヤホンの音が小さい
- キーボードスリープモード
- 画質や操作性の良いカメラ
- 3月27日(月)
- ノートPCのメモリ増設
- スピーカーを設置する高さ
- デジカメのケースのお薦め
- 3月24日(金)
- 運動中も外れないイヤホン
- 皆既日食撮影用のカメラ
- タイヤの交換を検討中
- 3月23日(木)
- オーブンレンジの選択肢
- プリンタの裏写りについて
- ゴースト発生のため買替え
- 3月22日(水)
- 自作PCにSSDを2つ接続
- レンズを付けてのAF作動
- スマホの使用感を知りたい
新着ピックアップリスト
-
【欲しいものリスト】約5年振りのPC更新構成案
-
【欲しいものリスト】新PC構成案3
-
【おすすめリスト】もしもめもりが32なら
-
【おすすめリスト】最新
-
【おすすめリスト】残りの10万で
価格.comマガジン
注目トピックス
- 新グレードのスバル「フォレスター STI Sport」。雪上試乗で味わった絶大な安心感
自動車(本体)
- 23年春のアウトドアはまずこれ! 「モンベル」のソフトシェル&フリースウェア 6選
その他のメンズアウトドアウェア
- ゴロ寝の間に野菜スープが完成!「全自動食べるスープメーカー」でがんばらずに食生活を改善
その他調理家電

新製品ニュース Headline
更新日:3月24日
-
[ノートパソコン]
-
[ネットワークカメラ・防犯カメラ]
-
[液晶テレビ・有機ELテレビ]
-
[デジタル一眼カメラ]

(家電)
ヘッドホンアンプ・DAC
(最近3年以内の発売・登録)





