飴屋的日記
10月分を見る
1年前を見る
2年前を見る
3年前を見る
4年前を見る
5年前を見る
6年前を見る
7年前を見る
8年前を見る
9年前を見る
10年前を見る
11年前を見る
12年前を見る
13年前を見る
14年前を見る
15年前を見る
16年前を見る
17年前を見る
18年前を見る
19年前を見る
20年前を見る
21年前を見る
22年前を見る
23年前を見る
24年前を見る
25年前を見る

11/5 (旧9/16)(水)

ケンタッキー州ルイビルでUPSのハワイ行きMD11が離陸直後に墜落して空港閉鎖のニュース。YouTubeにあった映像見てみると左翼のエンジン付近から真っ赤な炎を出しながら離陸しようとして墜落炎上。どこかで燃料漏れたのかしら。ルイビルって日本人観光客が行くような場所ではないのだけど,運送会社UPSのハブがあるので空港閉鎖は影響大。Mouserで買い物してUPS便を指定すると,ダラスフォートワースからルイビル経由で成田に来る。以前はダラスフォートワースからアンカレッジ経由だったのでアンカレッジで滞留することもあったが,ルイビル経由になってあまりそういうこともなくなった。でもこの事故でしばらく滞留するのかもしれない。直近でMouserに注文出してなくてよかったのか?

アリエクに大量に置いてあるSA9023+ES9018K2Mの基板が届いた。大概のストアでES9018K2MではなくES9028K2Mと書かれて売られているが,元ネタを卸しているベンダがES9028K2Mとして売っていると予想。売り手にそんな細かい話をしても分かる人達ではないのだろうな。SA9023はA付きのSA9023Aだったが,A無しとどう違うのかはわからん。この基板,実用として使う訳ではなく,価格が2000円ちょっとなので部品取り用に調達。 動作確認で一聴したところ結構よくできている。これはこれで十分実用になりそうだ。ES9018K2Mのアナログ電源はローノイズのLT1763を奢っている。秋月で買うとこれだけで450円だ(ただし本物かどうかの保証は無し)。ES9018K2Mの出力を受ける差動アンプはAD823だ。コイツは3〜36Vの単電源で動作するスグレモノ。USBの5Vで動かすならいい選択だ。問題はコストで,もし本物だったら1個単位で買うと単価は千円以上になる。ローパスフィルタも兼ねているので,ハイスピードな音だが目立った棘もなくシルキーな感触だ。改造するなら出力に入っているパスコンを中華からもう少しマトモなモノにすることくらいか。中華電解コン以外は結構マトモな部品が入っている。なんと大量のタンタルコンを搭載。これがいい味出してるような音なのだ。燃えてショートさえしなければいい部品。でも国内設計品だとショートが怖くてセラコンを使う場所だ。せめてこれだけタンタルコン使うなら,USB電源のところに過電流保護を入れて欲しいところだが,一切入っていないところもさすが中華。それはおいといて,改造ネタの出力のパスコンは別にオーディオ用でなくても,電圧が低いのでマザーボード用の奴や,高分子コンデンサで遊んでみると楽しいかもしれない。


部品は(本物なら)マトモだが作りは雑だ。

早速解析。見たところ回路はデータシートほぼそのままと見た。USB-DDC側もDAC側も特に特徴はなさそう。さっそくROMの中身を吸い上げようとしたが,回路に乗せたままでは過電流エラーがでてしまう。仕方がないので基板からROMを外して裸にしてから吸い上げ。中身を見てびっくり。載っていたROMはデコイで,中に何も書かれていない。もしやこれはとROM無しの状態でUSBを差し込んで起動してみると,全く問題なくいままでと同様に起動する。デコイのROMを搭載するくらいなら過電流保護のポリスイッチ入れられるだろうよというツッコミはおいといて,このSA9023AはROM無しでも動くデフォルトモードとかあるのだろうか。データシートにはこんな風に書いてある。

External EEPROM Support
After power up, the I2C interface will read the external EEPROM to load customer specific descriptor data. The hardware automatically detects if there’s an EEPROM populated on the board. If there’s a valid ACK response from the EEPROM, SA9023 continues to read the EEPROM to decide whether the EEPROM has been programmed correctly. If the data match, the EEPROM data content is considered valid, and the hardware will continue to read data for USB HOST request. Otherwise it switches automatically and read the internal ROM data.(それ以外の場合は自動的に切り替わり,内部のROMデータを読み取る)

つまり,ROMの中身が空っぽ(ALL 0xFF)の場合,内部のROMデータで起動するらしいので挙動としては合っていそうだ。次にお試しでNFJのFX-04J+から吸い出したROMデータを書き込んだROMを載せてみる。すると今度はUSBのデバイス表示がFX-04J+になった。何曲か聞いてみたが問題なく動作する。まぁ当たり前なのだが,こりゃ面白い。と,ここまで聞いてLとRが逆なのに気が付く。そもそも基板の間違いなのか,FX-04J+のROMデータの中に左右入替指示があるのか,よくわからん。


11/4 (旧9/15)(火)

指揮棒振りの日。先月の舞台に載せなかった曲を中心にリハビリ。しっかり忘れて元の癖が戻ってしまっているのを少しずつ解放。演奏会まではこれの繰り返し。まぁ,仕方がない。


11/3 (旧9/14)(月)

久々のパンダ詣。来年早々に中国へ返還という契約なので,見に行くなら今のうちかもしれない。2021年生まれで適齢期にもなっている訳で,双子を独身のままにさせておくのもどうかとは思う。でも,それはそれ。そもそもの経緯も含めて政治云々も言われているが,パンダに関しては政治より現金のような気がするが気のせいだろうか。で,普通の入園券だと元を取らなきゃとあちこち見に行って疲れ果ててしまうので,例によって年パスで。まぁ,気持ちの問題ということで。


双子の息子(シャオシャオ)と娘(レイレイ)はそれぞれ別の観覧列になってる。狙うのは娘の方。


外で遊んだり中で食べたり行ったりきたり。


動物園の主様は今日もお元気の様子。


サル山の残骸モニュメント。まだ公開前なので柵で覆われている。
しかしこの展示,子供がサルのように登って遊んでケガして撤去ってことにならなければ良いが。


モノレール駅跡地。車両は昨年現地解体。駅の残骸が見られるのも今のうち。
こちらの残骸もサル山のように展示...な訳ないか。

パンダの後は登亭で鰻。これも近年恒例になったような。明日は秋の丑の日のキャンペーンで割引だそうだ。一日早かったか。


11/2 (旧9/13)(日)

昨日のつづき。Pi 4にUSB-SSDをつけたらそこそこ快適になったので,それならばとPi 5の方を復活させてみることに。ついでに昨日のUSB-SSD比較で,MicroSDの実力を測定してみた。Pi 5につけているのでPi 4につけるより性能が出るが,それはそれということで。


どれも普及品だ。左の2つは購入時千円未満。

サンディスクExtreme 32G V30/UHS-I Class3/A1
サンディスクのMicroSDカードは灰赤と金赤と黒赤があるが,こちらは中庸な金赤。以前,あきばおーで並行輸入品が安く売っていた頃はよく使ったが,円安と,ベンダが直接Amazonなどで売るようになってからは,偽物リスクのある並行輸入品はあまり使わなくなってしまった。金赤の方はいつのまにかアプリケーションクラスがA1からA2に変更になったようで,3つ目がそれ。こいつはA1だ。カタログスペックでは読み出し最大100Mbytes/秒,書き込み最大60Mbytes/秒とのことなので,読み出し91,書き込み62もでていれば御の字か。

$ export TARGET=/var/tmp ; fio -f /var/tmp/jobfile --output-format=terse | awk -F ';' '{print $3, ($7+$48) / 1000}'
Sequential Read (1M) 91.915
Sequential Write (1M) 62.966
Random Read (512K) 89.583
Random Write (512K) 46.411
Random Read (4K) 14.851
Random Write (4K) 2.752
Random Read (4K-iodepth=32) 15.618
Random Write (4K-iodepth=32) 2.797

キオクシア EXCERIA 32G UHS-I Class1
本当はこの下に更に廉価品クラスがあるのだが,ほとんど見かけないし価格が逆転していることも多いので,事実上一番廉価で入手できるクラス。中庸を狙った性能か。読み出しは81Mbytes/秒だが書き込みが遅い。カタログスペックも読み出しは100Mbytes/秒と記載されているが書き込みの数値が無い。書き込みが遅いのはメーカー承知なのか。ただ,4KブロックのRandom Writeは試した3つの中では一番速かった。内部のブロックサイズが他より小さいと予想。

$ export TARGET=/var/tmp ; fio -f /var/tmp/jobfile --output-format=terse | awk -F ';' '{print $3, ($7+$48) / 1000}'
Sequential Read (1M) 80.958
Sequential Write (1M) 18.801
Random Read (512K) 85.118
Random Write (512K) 19.418
Random Read (4K) 14.397
Random Write (4K) 6.75
Random Read (4K-iodepth=32) 14.795
Random Write (4K-iodepth=32) 7.074

サンディスク Extreme 128G V30/UHS-I Class3/A2
こちらはアプリケーションクラスがA2なのでRandom Write 512Kが他より速い。その分,キオクシアの安物より高価だが,4Kランダムという過酷な状況になるとキオクシアの安物の方が一枚上手だ。カタログスペックは読み出しが最大190MBytes/秒,書き込みが90MBytes/秒だ。やはりRaspberry Pi 5だと読み出し90MBytes/秒あたりが限界なのかもしれない。

$ export TARGET=/var/tmp ; fio -f /var/tmp/jobfile --output-format=terse | awk -F ';' '{print $3, ($7+$48) / 1000}'
Sequential Read (1M) 85.368
Sequential Write (1M) 74.33
Random Read (512K) 83.372
Random Write (512K) 53.515
Random Read (4K) 12.823
Random Write (4K) 4.156
Random Read (4K-iodepth=32) 12.773
Random Write (4K-iodepth=32) 4.104

MicroSDのだいたいの速度はわかったが(どんなに速いのを入れても読み出し90M,書き込み75Mくらいが最大),PCIe接続のNVMeはどうだろうか。こいつにつけてある中華NVMe(去年5千2百円で買ったNetac NV3000 500GB)はこんな感じ。昨日のPi 5のUSB SSDとあまり変わらんといえば変わらんところが興味深い。スペックでは3300MBytes/秒だが,Pi 5のPCIeがデフォルトでは2.0なのでスペック上の速度は約500MBytes/秒。これ以上は無理だと思えば,450以上でているのは善戦している方か。

$ export TARGET=/var/tmp ; fio -f /var/tmp/jobfile --output-format=terse | awk -F ';' '{print $3, ($7+$48) / 1000}'
Sequential Read (1M) 455.111
Sequential Write (1M) 438.367
Random Read (512K) 423.838
Random Write (512K) 424.181
Random Read (4K) 67.117
Random Write (4K) 120.001
Random Read (4K-iodepth=32) 313.007
Random Write (4K-iodepth=32) 258.716

そこで,オフィシャルでは使えないことになっているPCIe 3.0モードにしてみるとどうなるか。PCIe 3.0のスペックでは約985MBytes/秒だ。測定してみると,およそ860くらいなのでこれも善戦している。というより,NVMeだと思うと遅いが,SSDだと思えばこの値はUSB接続だと10G以上で接続しないと出せない。それが手のひらサイズのコンピュータの内部で実現できていると考えればメチャ速なのかもしれん。

$ export TARGET=/var/tmp ; fio -f /var/tmp/jobfile --output-format=terse | awk -F ';' '{print $3, ($7+$48) / 1000}'
Sequential Read (1M) 858.081
Sequential Write (1M) 842.906
Random Read (512K) 725.156
Random Write (512K) 804.739
Random Read (4K) 39.577
Random Write (4K) 198.706
Random Read (4K-iodepth=32) 309.954
Random Write (4K-iodepth=32) 506.313

ついでにPCI3.0の状態のままUnixBenchを起動。やはりファイルの読み書きが速くなった効果はあるようで,昨年四月が1CPUで1476.2と4CPU並列で3617.3だったのに対し,1CPUで1669.3,4CPU並列で4547.3だ。1〜2割の向上はあるようだ。

------------------------------------------------------------------------
Benchmark Run: Sun Nov 02 2025 18:32:01 - 18:59:59
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       35682380.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     7008.5 MWIPS (9.9 s, 7 samples)
Execl Throughput                               5842.4 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        912306.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          292555.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2374827.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1565118.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 171246.5 lps   (10.0 s, 7 samples)
Process Creation                              10636.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  11745.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   3599.6 lpm   (60.0 s, 2 samples)
System Call Overhead                        1052848.5 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   35682380.6   3057.6
Double-Precision Whetstone                       55.0       7008.5   1274.3
Execl Throughput                                 43.0       5842.4   1358.7
File Copy 1024 bufsize 2000 maxblocks          3960.0     912306.0   2303.8
File Copy 256 bufsize 500 maxblocks            1655.0     292555.8   1767.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    2374827.1   4094.5
Pipe Throughput                               12440.0    1565118.4   1258.1
Pipe-based Context Switching                   4000.0     171246.5    428.1
Process Creation                                126.0      10636.4    844.2
Shell Scripts (1 concurrent)                     42.4      11745.4   2770.1
Shell Scripts (8 concurrent)                      6.0       3599.6   5999.3
System Call Overhead                          15000.0    1052848.5    701.9
                                                                   ========
System Benchmarks Index Score                                        1669.3

------------------------------------------------------------------------
Benchmark Run: Sun Nov 02 2025 18:59:59 - 19:27:57
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables      142349270.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    28054.7 MWIPS (9.9 s, 7 samples)
Execl Throughput                              17238.2 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       2325940.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks         1136555.2 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2586130.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             6213530.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 576699.7 lps   (10.0 s, 7 samples)
Process Creation                              29643.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  26249.6 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   3544.4 lpm   (60.0 s, 2 samples)
System Call Overhead                        4218830.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  142349270.8  12197.9
Double-Precision Whetstone                       55.0      28054.7   5100.9
Execl Throughput                                 43.0      17238.2   4008.9
File Copy 1024 bufsize 2000 maxblocks          3960.0    2325940.0   5873.6
File Copy 256 bufsize 500 maxblocks            1655.0    1136555.2   6867.4
File Copy 4096 bufsize 8000 maxblocks          5800.0    2586130.5   4458.8
Pipe Throughput                               12440.0    6213530.0   4994.8
Pipe-based Context Switching                   4000.0     576699.7   1441.7
Process Creation                                126.0      29643.6   2352.7
Shell Scripts (1 concurrent)                     42.4      26249.6   6190.9
Shell Scripts (8 concurrent)                      6.0       3544.4   5907.4
System Call Overhead                          15000.0    4218830.0   2812.6
                                                                   ========
System Benchmarks Index Score                                        4547.3

11/1 (旧9/12)(土)

グラフィックソフトウェアのAffinityのv3が出て,しかもまさかの無料化。おいらもIntelMacでPowerPCコードのアプリが使えなくなった時点でIllustratorからAffinity(当時はv1)に乗り換えたのだが,ここにきてまさかの無料化だ。開発元のSerifが去年オーストラリアのCanvaに買収されてからしばらく動きがなかったもの。Canvaはいわゆる無料で使えるクラウド型のグラフィックソフトなのだが,その中にCanva AIっていう有料の生成AI機能がある。このAIに適当な指示を出すと,それっぽいグラフィックを出力してくれるのだ。Affinityの無料化は,従来のツールで稼ぐビジネスモデルではなく,ツールはあくまでも有料のクラウドAIの入り口であって,そのツールを幅広く使ってもらうための無料化らしい。これはもしかしたらAdobeの牙城を崩せるかも。その前にAIで安請合グラフィックデザイナーの仕事がなくなってしまうかもしれんが。で,昨日のうちにダウンロードしておいたので,動かしてみた。起動時にライセンス確認が入るが,オフラインでも起動できるらしい。縦書きは相変わらずできないが,横書きソフトで使える縦書きフォント(文字が90度横倒しになっているフォント)が存在するので,そのフォントを使う限りは大きな問題ではない。v2との違いは少しずつ消化できそうな感じ。

部屋の片付けをしていたら以前使っていたRaspberry Pi 4 8GBがでてきた。Pi 5は何かのサーバに使おうと思ってNVMeを載せた状態で温存しているのだが(単に構築する暇がないだけとも言う),Pi 4も出たときに買ってたのだっけ。こちらは完全ファンレス仕様のアルミヒートシンクケースに入れてある。うーん,ファンレスがありがたいのでサーバ用途ならこっちをUSB-SSDで運用した方が良いかなという気もしてきた。USB-SSD上にシステムを構築して,データディスクは別のUSB-SSDかNASを使用。システムが飛んだときの為にUSB-SSDはシステム構築後にイメージをどこかにコピーしておく運用とかどうだろう。交換時に分解不要な分,NVMeより楽かもしれない。さっそくバッファローの親指サイズSSD SSD-PST250U3BAをつけてRaspberry Pi Imager でOSインストール。10月から最新版はBookwormからTrixieベースになった。これだけで準備OK。USB-SSDを刺して電源を入れるだけ。microSDがついたままだとそっちから起動するので外しておく。Pi 4のUSBストレージ起動は昔は面倒だったが今は簡単なのだ。起動後,apt full-upgradeでファイル群を最新に更新した後,例によってUnixBenchを走らせてみる。CPU性能でPi 5の1/2〜1/3くらい。ファイル性能はもっと遅いがMicroSDよりは断然マシ。くらいか。

------------------------------------------------------------------------
Benchmark Run: 土 11月 01 2025 21:29:54 - 21:58:05
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       19367957.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3244.2 MWIPS (9.8 s, 7 samples)
Execl Throughput                               1619.0 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        312561.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          106632.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        683031.8 KBps  (30.0 s, 2 samples)
Pipe Throughput                              631557.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  61308.4 lps   (10.0 s, 7 samples)
Process Creation                               2853.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3526.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1242.6 lpm   (60.0 s, 2 samples)
System Call Overhead                         408879.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   19367957.5   1659.6
Double-Precision Whetstone                       55.0       3244.2    589.9
Execl Throughput                                 43.0       1619.0    376.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     312561.4    789.3
File Copy 256 bufsize 500 maxblocks            1655.0     106632.8    644.3
File Copy 4096 bufsize 8000 maxblocks          5800.0     683031.8   1177.6
Pipe Throughput                               12440.0     631557.9    507.7
Pipe-based Context Switching                   4000.0      61308.4    153.3
Process Creation                                126.0       2853.3    226.5
Shell Scripts (1 concurrent)                     42.4       3526.9    831.8
Shell Scripts (8 concurrent)                      6.0       1242.6   2071.0
System Call Overhead                          15000.0     408879.6    272.6
                                                                   ========
System Benchmarks Index Score                                         591.3

------------------------------------------------------------------------
Benchmark Run: 土 11月 01 2025 21:58:05 - 22:26:18
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       77269325.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    12988.4 MWIPS (9.8 s, 7 samples)
Execl Throughput                               3848.4 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        947171.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          403380.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1460320.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2501387.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 223062.7 lps   (10.0 s, 7 samples)
Process Creation                               7209.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   9417.6 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1276.7 lpm   (60.1 s, 2 samples)
System Call Overhead                        1637727.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   77269325.3   6621.2
Double-Precision Whetstone                       55.0      12988.4   2361.5
Execl Throughput                                 43.0       3848.4    895.0
File Copy 1024 bufsize 2000 maxblocks          3960.0     947171.4   2391.8
File Copy 256 bufsize 500 maxblocks            1655.0     403380.9   2437.3
File Copy 4096 bufsize 8000 maxblocks          5800.0    1460320.5   2517.8
Pipe Throughput                               12440.0    2501387.7   2010.8
Pipe-based Context Switching                   4000.0     223062.7    557.7
Process Creation                                126.0       7209.7    572.2
Shell Scripts (1 concurrent)                     42.4       9417.6   2221.1
Shell Scripts (8 concurrent)                      6.0       1276.7   2127.8
System Call Overhead                          15000.0    1637727.1   1091.8
                                                                   ========
System Benchmarks Index Score                                        1722.0

速度測定ツールのfioで測定するとこんな感じ。ジョブファイルは標準的なものを作成。読み書きのサイズは1G。出力はterseを指定するとセミコンマ区切りの数字の羅列になる。3番目がジョブ名,7番目がリード速度,48番目がライト速度なので,そいつらをawkで選択表示。まぁ,Pi 5のPCIe接続NVMeとPi 4のUSB-SSDを比較するのはヤボだが,それでもMicroSDよりは断然速そうだ。

$ export TARGET=/var/tmp ; fio -f /var/tmp/jobfile --output-format=terse | awk -F ';' '{print $3, ($7+$48) / 1000}'
Sequential Read (1M) 307.5
Sequential Write (1M) 248.89
Random Read (512K) 269.349
Random Write (512K) 232.242
Random Read (4K) 22.822
Random Write (4K) 35.802
Random Read (4K-iodepth=32) 111.693
Random Write (4K-iodepth=32) 94.423

もどる