386.暫定テストコマンド

DREAM VER3 以降にある暫定テストコマンド

暫定コマンド中にマルチプロセス処理というコマンドがあります。
FILLを高速に処理できる機能。複数のコアを持っているCPUならば
並列処理し高速化するというコマンドです。

今のマシンスペックはi5-6400 2.7GHz win7です。
マルチプロセスは必要なコア数を選べます。1コアから4コアまでです。

i5は 4コアあるので最初4コアを選んで実行してみました。
CPU負荷のゲージを見ていると100%が続くときがあります。
全部FILLに費やすことはパフォーマンスが
かえって悪くなると感じです。
なので使うときは3コアを選択しています。

以前のマシンcore2duo 3Ghz OS XPのとき
このマルチプロセスのボタンを押すと
なぜか落ちてしまい使えませんでした。
しかし同じXPでも違うパソコンでは機能していたので
(デュアルコア2.2Ghz XP)OSの問題でもないことがわかっています。
何か設定の問題のようだと思うのですが
すでに使用していないので調べないままになっています。

とりあえずi5のマシンでは新しくインストール直したので
設定が初期設定になっているのか問題なく
マルチプロセスの機能が使えました。
おそらくXPでもconfigなどを初期にして
インストールしたらできるのではないだろうかとも思いました。

本題のマルチプロセスの速度にいきます。
シングルのALLFILLと比べ平均して3,4倍速くFILLされます。
コア数分速いといえます。

フィルをコア数分振り分けて並行処理しているため
1個の広いfillにくらべ小さく小分けしたfillのほうが
効果が高かったです。

自分は小分け派です。
(そういう派はあるか不明ですが)
最初は1面でやってしまえれば一見楽でよいのですが
そのままにしておけないパターンが出るのがデメリットです。
形状により鋭角パターンや
アンテナのパターンなどFILL形状を変える必要な部分がで
ることがあります。
鋭角は設計接続上問題なくても
基板製造に信頼性を落とす要因のため製造段階で
CAMチェッカーに引っかかる事項です。
後戻りするのは工期にも影響あるので
事前にストップラインをあて再FILLをして修正をしておりました。
けれど見直すと他にも直したい部分が見つかったりして
また再FILLといったことをよく繰り返していました。
そうした再fillロスが負担です。
また1面が大きければ1回の計算量も多くなり待つ時間も増えます。

ならば
FILLを小分けして
完成したFILLを張っていくほうが修正も少く
fill自体の計算量も少なくなり有利ではないかと考えやってみました。
細かくFILLすることは手間なのですが慣れていくにしたがって
負担も減り。
速度の面でもFILLも速くなり待ち時間も少ないので
現在はそのように仕上げるほうが多いです。

大型の基板になれば
1000近くのFILL数になることもあります。
1面でベタっと張ってすませられれば...
と思うこともあります。
いつの日かAIがそうした鋭角箇所やアンテナ箇所
のような箇所を発見し
自動修正してくれる将来を期待しましょう。

速度について過去にそうした多いFILLが
どのぐらい速くなったのか調べてみました。
ペンティアム4 2.66GHz時代(シングルコア時代)
10数分かかったFILL。
これと同じデータを
i5マルチコアで読み試すと
3分わずかに切る時間でFILL終了しました。
5倍ほど速い結果となりました
これはかなり速い!と体感しました。

しばらくほかのデータでも試してみると気になる点がありました。
たまに従来のバッチFILLに比べ
速度が出ない、考え中になるケースがありました。
考え中というのは通常のFILL枠を大きく取りすぎたときに
長く待たされそのあとハングしたりする場合のような症状です。
ただシングルでは考え中にならずにマルチだけ遅くなるのです。

これはなぜ?と思い注意深くモニタを見ていていました
そうしているうちに手がかりが見つかりました。
FILL完了したときのFILL形状がじっくり見比べると
一部分違うのです

シングルは自分がFILL枠を作った順序で
FILLされているのに対し
マルチは
3スレッドで分けているため
各スレッドFILLする順番が異なります。

何が問題かというと
異なるネットFILLがある場合です。

たとえば
AGNDのFILL
DGNDのFILL
の2種類のFILLがあったとします。

その2つのFILL枠を
エリアが交差するように描くとします。

最初にAGNDのFILL枠が
描かれたら次に描くDGNDのFILLはそのAGNDを逃げるように
FILLするためDGNDのほうが小さくなります。

逆に最初にDGND枠が描かれたら
AGNDのFILLエリアは小さくなります。

順序により
FILLされる形状が違う理由です。

シングルの場合は
仮にエリアが交差していたとしても
自分がFILL枠をはった順に
描かれるので意図通り描けるのですが

マルチの場合3スレッドでFILL順をわり振るため
FILL枠をはった順に描かれるわけではありません。
先にFILL形成されたものが優先となり
次のFILLがそれを逃げた形になります
その順序が変わることにより
逃げた形状が複雑になりFILL不可のような
状況になると計算時間が異様に長くなるのではないか?
確かめるため
枠を交差しないように張りなおしたら
予想通りスムーズにFILLされ形状もシングルと同様でした。

まとめとして
異なるネットのFILLがある場合はFILL枠を交差しないように
(指定ギャップ分以上はなして)
FILLを張ろうということです。
こうすることでFILL順が違っったとしても干渉を受けないため
形状が変わることもないので安心です。

シングルだけしか使わないとしても
原理は同じなので
異なるネットのFILL枠を隣接させるときは
交差しないようにFILLを心がけておくことで
無駄のないFILLを作画できます。


トップへ
トップへ
戻る
戻る