カテゴリー

多時間系と等時性

二週間のご無沙汰でした。SALです。

前回は、「ディジタルデータを正確に扱うことと、リアルタイム性が両立できない場合がある。」
と話ました。では、一般のPCはどちらを優先させているのでしょうか?

勿論、前者であることは、改めて言うまでもありません。
通常のコンピュータ処理に於いて、「決められた時間間隔で次々と答えを出す」と言った作業は有りません。
寧ろ、「正確であることを満足すれば、早ければ早いほど宜しい」のです。
抽象的な言い方をすれば、それぞれの任務はそれぞれの時間で行っても構わないのです。
「3時までに報告書を提出しなさい!」と命令されることはあっても、
「結果は、正確に3時から1ページ3秒間隔で、提出しなさい。」何て言う上司はいません。
通常の業務では、PC内のプロセス達は、独自の時間で処理を行えば良いのです。
そもそも、PCが提供するリソースはプロセスの数に比べて圧倒的に少ないわけですから、本当の意味で同時進行はできません。
つまり、各々のプロセスは、実時間に対してギクシャクした時間配分の中で、進行しているわけです。
このことは、OSから与えられた仮想空間(memory,I/O)と同様に、仮想時間をイメージすると判り易いかもしれません。
即ち、OSは個々のプロセスに、必要な仮想空間と共に仮想時間を与えると解釈し、全体を多時間系と見做すことにします。

逆に後者の典型は、制御用のコンピュータです。
制御用のコンピュータでは、刻々と変化する状況を捉え、実時間でコマンド処理を行わなければなりません。
言うなれば、一連の処理を総て一つの時計の下に進めなければなりません。
これを、等時処理或いは等時性(Isochronous)と呼びます。
例えば、具合の悪いデータがあるので、「この処理は後回しにする(時間分岐)」なんて訳には行きません。
平時に機能している組織が、緊急時に役に立たなくなるのは、一般の多時間的組織では等時処理ができない為です。
勿論、精度の悪いデータで制御する訳にはいきませんので、
必要な精度を保てるような、ハードウェアとリアルタイムカーネルを必要とします。

80年代、SALは多軸サーボシステムのコントロールソフト開発をメインに仕事をしていました。
当時のPCは、貧弱で当然ながらその様な用途には向いていませんでした。
しかしながら、ユーザの要望で使わざるを得ない場合は、必要なハードウェアの追加や改造を施すと共に、
総てのソフトウェアを自前で用意したものです。(内蔵LSIの初期化にBIOSを利用したことはありましたが…)
あれから20数年、PCは多大な進化を遂げましたが、リアルタイム処理が前提の機器ではありません。
しかしながら、ゲームやDVDビデオの再生等に使用されることも前提なので、希望の光はあります。

準備が整ったので、PCでの音楽プレイヤーに潜む問題を洗い出してみましょう。
今回は、DACチップ自体の問題は問わないので、正確なアナログ出力をする理想のDACを前提にします。
信号の伝播経路を大雑把に、
①WAVファイル→②プレイヤーソフト→③デバイスドライバ→④サウンド装置側のコントローラ→⑤DACチップ→⑥アナログ出力
とします。(途中LAN、USB、DDCを介する場合もあるかもしれませんが、そこに潜む固有の問題は別の機会にします)
勿論、①~④の平均処理速度は、⑤が要求するレートを充分上回っていなければなりません。
重要なのは、PC側①②③が多時間系なのに対して、⑤DACは完全な等時処理であることです。
では、この切り替えはどのステージで行うのが理想的でしょうか?
SALが提唱するような、楽曲再生の為だけならば、④サウンド装置側のコントローラの内部で行うのが理想的です。
そうすることで、何時でも正確なデータを⑤DACに必要なテンポで送り出すことができます。

ところで、この変換を行うためには、仮想時間系のギクシャクした時間を緩和するためのバッファ(空気室の様なもの)が必要です。
その容量は、与えられた仮想時間がもつ最大ギャップ(沈黙時間)を保障できなければなりません。
結果的に言えば、少なくともその程度の遅れ(Latency)は覚悟しなければなりません。
ところが、プレイヤーソフトに色々なエフェクターや表示当を付ける場合は、
その操作に関与したプロセス以降を等時処理しなければ、⑥アナログ出力と時間的なずれを生じてしまいます。
百歩譲っても、感覚的に違和感のない程度の遅れに留めなければなりません。
しかしながら、PC側のどのプロセス①②③も本来多時間系なので、遅れ縮小には限界があります。
つまり、仮想時間のばらつき以下にすれば、それだけでデータを正確に伝送できなくなります。
また、ばらつきを少なくしようと、該当プロセスの実行順位を無理やり上げても、今度は安定した動作が保障できなくなります。

年度末が近づいてきた・・・

K’s です。
年度末が近づいてきたこともあり、何かと気忙しい日々を送っているこの頃です。
1週間ほど前に比較的大きな規模の案件の引き合いをいただき、見積書作成の期日が今月中なので、この土・日曜日もお持ち帰りで書類と格闘していました。

仕事にとり掛かっているとアッと言う間に時間が過ぎていきます。 「集中力がある」と言えば聞えが良いのですが、単に「仕事が遅い」だけなのかも知れません。 そんな訳で気がついたら既に夕方、土曜日はジャズ・ボーカルの発表会があり、歌わなければなりません。 さっそく家族と一緒に一目散に会場のライブ・ハウスに向かい、美味しいスパゲティーを食べて、準備完了。
 
K’s の出番は10番目、他の出演者の歌を聴きながら待っていたのですが、とっても長~い。 なぜ、こんなに時間が「短かかったり」、「長かったり」両極端に感じるのでしょうか?
神様はK’s の体内にジッター発生器でも仕組んだのでしょうか?
やっとK’s の出番になり2曲歌ったのですが、仕事の事で頭が一杯(バッファーの容量不足ですが、ガベージコレクションをしたら、後ですばやく仕事に戻れないので大変)でMCはボロボロ、でも肝心の歌の方はとても気持ち良く歌うことができました。

娘が携帯を使い、気合でスナップを撮ってくれました。
暗いライブ・ハウスなのに良く撮れています。

デジタル情報は正確か?

二週間のご無沙汰でした。SALです。

最近、PCオーディオと言う言葉も定着してきた感がありますが、SALが目指す方向との違いも徐々に感じられるようになりました。
どうも、PCを使ったオーディオには二つの流れがあり、それらをPCオーディオと一つの言葉で括ってしまうことに、原因があるようです。
その二つとは、簡単に言うと「PCありき」か「オーディオありき」かです。
「PCありき」とは、PCで音楽を聴くにしても、もっと楽しめる音にすること。
「オーディオありき」とは、従来からのオーディオソースにPC音源も加えること。
と思ってください。
この二つは、将来的に合流する可能性もゼロではないかもしれませんが、少なくとも今は別の流れと考えた方が良さそうです。
PC雑誌のオーディオ記事の多くは、前者の立場で書かれたものが多いので、後者の方が読む場合は注意が必要です。
また、後者の立場での議論にも、PCに対する誤解(迷信)が含まれている場合があり、こちらも要注意です。

そこで、これまでの話も含めて、PCを使ったオーディオについて、何回かに分けてお話したいと思います。
先ずは、第一回目として表題の項目について述べてみます。
最終目標は、「PC音源の音質は他のアナログソースに匹敵、若しくは凌駕できるか?」に答えることです。
では、始めましょう。

「デジタルだから正確だ!」等と聞くことがあると思いますが、この主張はそれこそ正確ではありません。
有限の情報を「正確に保管する」或いは「正確に渡す」には、デジタル化は有効な手段ですが、充分ではありません。
正確さを保障するには、以下の二つが必要です。
① 誤り検出が可能であること
更に、誤り率が比較的高い場合には、
② 誤りがあった場合に、訂正若しくは再送が可能であること
です。このことをもう少し掘り下げて説明します。

① 誤り検出機能とは
実際に伝送や記録で使用されるメディア(物理媒体)は、アナログ量を利用するので、ほぼ無限とも言える情報量を保有しています。
デジタル情報は、その中から曖昧な部分を極力排除して、ほんの一部を有限な情報媒体として利用しています。
つまり、受け渡しに都合の良い部分だけを利用するので、つい正確だと思ってしまいますが、誤りが無い訳ではありません。
そこで、誤り検出を可能にする為に、本来の情報から算出される「余分(冗長)な情報」を加えます。
一番簡単な例がパリティビット(parity bit)です。
例えば、1バイト毎にパリティビットを加え9ビットを1デジットとして渡すこととします。
ここで加えた1ビットが冗長ビットになります。

偶パリティ(even parity)を例に、仕組みを簡単に述べてみます。
本来の情報は1バイト(256通り)なのですが、もしこの部分のONのビット数が奇数の場合は、パリティビットもONにします。
そうすると、正しいデータは「常にONのビット数が偶数」になっている筈です。
偶然二つのビットが反転した場合も正しいと見なしますが、起こりうる確率は一つの場合の二乗程度になります。
言葉のあやですが、万に一つであれば、億に一つとなり、精度がぐっと上がります。
昔のIBM互換機のメインメモリ構成はこうなっていました。いかにも実務のIBMらしいと思えます。
因みに、ホビーユースから発展してきた多くのPCは、パリティ無しでした。
IBM互換機も、EDOを使う頃からはパリティ無しになってきましたが、
IC自体の信頼性向上というよりも、パリティエラー後の処理が問題だったのかもしれません。
業務用サーバ機等では、自己修復能力②のあるECCを採用して、対処しているようです。

② 訂正若しくは再送が可能とは
伝送の場合は、送り主がいる訳ですから、受け手でエラーを検出したら、再送を要求することも可能です。
こうすることで、よほどのことがない限りは、情報を正確に受け取ることができます。
欠点は、送り主が受け手や伝送経路の品質に縛られることです。(例えば、ブロードキャスト不可とか…)
別の視点で言うと、送り主が希望したテンポで送ることが保障されない点です。(リアルタイム性への障害)
例えば、皆さんが今使っている通信手順であるTCP/IPを例に取ると分りやすいかもしれません。
TCPはIPの上位のプロトコルとしてスタックされています。
IPはパケット単位の情報をネットワークを駆使して受け手に届けるための手順で、再送に関する手順はありません。
誤り訂正の為の再送プロトコルはTCPの担当です。
皆さんが今使っているブラウザはこのTCPの上位にあるアプリケーションなので、このブログもWFPのダウンロードも正確に行えます。
逆に、IP電話が何故IPなのかも、正確さよりリアルタイム性を重視する所以です。
実は、PCにおける音楽再生もこの状況は同じです。(詳しくは、回を追って述べます)

データを保存する場合は、再送手段を持ちえませんので、自己修復方式がよく使われます。
折角なので、自己修復の仕組みを簡単な例で説明します。
先ほどのパリティビットに加えて、ある纏まったバイト数(仮に32とする)単位でデータを括り、そこに一バイトのパリティデータを加えます。
冗長な一バイトは、それぞれのデータラインD0~D7のパリティを担当します。
(8×32長方形の縦横方向にパリティチェックを行う)
今、5番目のバイトとD3がパリティエラーしていれば、5番目のD3ビットを反転すれば、正しいデータに戻ります。
実際にはより洗練されたチェック方式を使います。
たとえば互換機のHDでは、通常データは512バイトのセクター単位に分けられます。
これにアドレス等のヘッダ情報とお尻にCRCと呼ばれるチェックデータを付けて記録されます。
このCRCが、自己修復機能つきのチェックデータです。
勿論修復能力は完璧ではありませんので、駄目な場合はCRCエラーとなります。
つまり、エラーなく読み込めた場合、そのデータ(例えばWAVファイル)は、書き込んだものと同一です。
万全を期すために、書き込み直後に読み出しチェックをする場合もあります。
こうすることで、書き込みエラーや不良メディアの検査になります。

今回は長話になってしまって申し訳ありません。
取り敢えず、以下のことを覚えておいてください。
「ディジタルデータは正確に伝える手段を持ち合わせていますが、
そのためにはリアルタイム性を犠牲にする場合が有りえます。」

入浴と読書とiPadと・・・

こんにちはLEOです。かなり久しぶりの投稿となりますが、しっかり生きながらえております^^

さて、2012年も1ヶ月を過ぎましたが、普段三日坊主で終わってしまう私が今年になってから1日も欠かしたことが無い事があります。

それは、入浴しながらの読書です。

だいたい45分~1時間程度湯船に浸かりながら、本を読みます。

最初は、湯気で本がダメになるので、浴室へ持ち込むのに抵抗があったのですが、

「本は使ってなんぼ、実用重視!ダメになったらまた買えばいい」と割り切って、持ち込んでみました。

すると、どうでしょう。当初心配していた湯気で本がダメになることはありませんでした。もちろん、適度な換気は必要ですが。

 

このようにいい感じに読書ライフを送ってきたのですが、最近、ひとつ不満に思うことが出てきました。

それは、本を読んでいると、書いてある事柄に関連のある事や、知らない事、言葉などに出くわした時に、

すぐに調べたくなるのですが、入浴中だとそれが出来ないのです。

調べたい事が出てきたら、とりあえず憶えておいて、風呂から出た時に調べようとしたのですが、悲しいかな、年のせいで調べたい事を忘れてしまうのです。

もっとも、メモを持ち込むとか方法はあるのでしょうが、気になることはすぐ調べたくなってしまいます。

そこで、本だけでなくiPadを持ち込むアイデアを思いつきました。iPadなら知らない事が出てきた時、すぐにネットで調べることが可能ですし。

とりあえず、そういう馬鹿な思い付きをする人がいないか、ネットで検索したところ、いるわ、いるわ、同じ事を考えていたご同輩が^^

方法は二通りあって、リーズナブルに済まそうと思えば、キッチン用品のジップロックで代用する。もうひとつは専用の防水ケースを購入する事です。

 

防水する手段はさておき、ひとつ心配なのは、iPadを浴室に持ち込んだら、読書どころか、ついついネットをやってしまわないかという事です。

入浴中にもネットなど、ネットジャンキーの末期症状だとも思えますので、少し抵抗感があるのが正直な気持ちです。

私の友人で、入浴中にネットをしたいがために防水仕様のスマートフォンに乗り換えた強者もおりますが・・・。

しばらくは悩みが続きそうです。

MP900431665