鈴木直美の「PC Watch先週のキーワード」
第187回:10月22日~10月26日


■■キーワードが含まれる記事名
●キーワード


10月22日

■■ アイワ、デジカメ付きICレコーダー
http://pc.watch.impress.co.jp/docs/article/20011022/aiwa.htm

●G.729
 ジーななにーきゅう

 ITU-Tが'96年にリリースした、音声用の符号化方式の勧告。

 CELP(Code Excited Linear Prediction~符号励振線形予測符号)をベースとした符号化方式の1つ、CS-ACELP(Conjugate Structure - Algebraic Code Excited LinearPrediction~共振構造代数的符号励振線形予測符号)を規定したもので、電話品質(4kHz)の音声を8kbps(Annexで6.4kbpsや11.8kbpsも規定)の低ビットレートで伝送。 DoCoMoの携帯電話ハイパートークなどに採用されている。

 一般的な音のデジタル化は、一定の間隔で音圧を測定し、それをデジタル値に変換する。CDなどに使われているPCM(Pulse Code Modulation)などは、このサンプルの音圧を示す値そのものを記録したものだし、MP3を代表とする多くの圧縮符号化方式も、基本的には波形を伝えるデータ(圧縮しやすいスペクトルを使うものが多い)を符号化したものである。これに対し、CELP系の符号化方式は、全く違うアプローチを採る。

 電話の主役は音声であり、あらゆる音を忠実に再現する必要はない。そこで、音声を発声する仕組みに基づいた音源の情報(声帯の波形パターン)とそれを加工する情報(声道の情報)などをあらかじめ符号として定義しておく。そして、サンプリングされた音声を分析し、最もうまく再現できるものを選んで行く。音声そのものデジタル化ではなく、音声合成用のシンセサイザーを動かすための、パラメータを作る符号化方式というわけだ。

 ちなみに、PHSに使われているADPCM(Adaptive Differential PCM)は、PCMなどと同じ波形を符号化する方式だが、携帯で使われている以下の符号化方式は、いずれもCELP系である。

フルレートPDCVSELP(Vector Sum Excited Linear Predictive Coding)
ハーフレートPDCPSI-CELP (Pitch Synchronous Innovation Code-Excited Linear Prediction)
J-PHONE EFRACELP (Algebraic Code Exited Liner Prediction)
cdmaOneEVRC (Enhanced Variable Rate Codec)
FOMAAMR (Adaptive Multi-Rate)

ACELPのマルチレート版でMR-ACELPとも

□ITU-T(International Telecommunication Union Telecommunication
Standardization Sector~国際電気通信連合電気通信標準化部門)
http://www.itu.int/ITU-T/
□Sipro Lab Telecom(G.729のライセンス管理を行なっている団体)
http://www.sipro.com/
【参考】
□PCM
http://pc.watch.impress.co.jp/docs/article/980917/key46.htm#PCM
□MP3 (MPEG 1 Audio Layer 3)
http://pc.watch.impress.co.jp/docs/article/980924/key47.htm#MP3
□EVRC(Enhanced Variable Rate Codec)
http://pc.watch.impress.co.jp/docs/article/990428/key75.htm#evrc


■■ 1ch.tv、DoS攻撃を受け被害届を警視庁に提出(INTERNET)
http://www.watch.impress.co.jp/internet/www/article/2001/1022/1chdos.htm

●DoS攻撃(DoS:Denial of Service)
 ディーオーエスこうげき

 サービス拒否攻撃。サービス不能攻撃。

 サーバーのバグをついたり、大量のパケットを送って負荷を高めるなどの方法で、停止させたり正常なサービスが提供できないようにする妨害行為。特定のサーバーに対し、複数の攻撃元から行なう分散型のDoS攻撃は、DDoS(Distributed DoS)攻撃と呼ばれる。


■■ 後藤弘茂のWeekly海外ニュース
   2003年までが明らかになったIntelのサーバー&ワークステーションCPU--その1
http://pc.watch.impress.co.jp/docs/article/20011022/kaigai01.htm

●TLP(Thread-Level Parallelism)
  ティーエルピー、スレッドレベルパラレリズム

 並列実行による高速化手法の1つで、複数のプログラム(※1)を同時に実行するタイプ。

 システムの処理速度を上げるためには、処理そのものをよりスピーディに行なうための高クロック化のほかに、複数の処理を並行して行なうというアプローチがある。例えば、CPUに使われているスーパースカラーや、マルチプロセッサシステムがそれだ。

 スーパースカラーは、CPU内にある複数の演算器を使い、1つのプログラムから取り出した命令を並列に実行する。プログラムの中の命令レベルで並列処理を行なうことから、このようなタイプをILP(Instruction Level Parallelism)と呼んでいる。

 一方のマルチプロセッサシステムは、CPUそのものを複数用意し、個々のCPUに個別のプログラムを実行させる(※2)。複数のプログラムが同時に実行されるマルチタスク環境では、それぞれの処理が複数のCPUに分散されるため、システム全体のパフォーマンスが向上する(※3)。このように、プログラムのレベルで並列処理を行なうタイプをTLPという。

※1 複数の処理を同時に実行すことをマルチタスクという。一般にいうマルチタスクのタスクは、OSが管理する1つのプログラムの実行単位「プロセス」のこと指し、このプロセスを構成する独立した処理の最小単位をスレッド。複数のスレッドを同時に実行することをマルチスレッドと呼んでいる。実際の処理がどのように行なわれるのかはOS次第なので、ここでは独立して実行される1つの単位を「プログラム」と呼ぶことにする。

※2 当然、OSがその機能を提供していなければならない。WindowsではNT/2000/XP Professionalなどがマルチプロセッサをサポートする。

※3 マルチタスクは、複数のプログラムにCPUの実行時間を、少しずつ与えて行くことによって成り立っている。したがって、単一のプログラムから見たマルチプロセッサ環境は、CPUタイムがより多く得られる可能性は期待できるが、本質的な処理速度が向上するわけではない。マルチスレッドタイプのアプリケーションでは、各スレッドが異なるCPUで処理される可能性があるので、速度の向上が期待できる。

【参考】
□マルチプロセッサ(SMP:Symmetric Multiprocessing)
http://pc.watch.impress.co.jp/docs/article/971118/key7.htm#smp
□スーパースカラー
http://pc.watch.impress.co.jp/docs/article/981021/key51.htm#superscalar
□IPC(Instruction Per Cycle)
http://pc.watch.impress.co.jp/docs/article/20011025/key186.htm#IPC
□マルチスレッド
http://pc.watch.impress.co.jp/docs/article/990423/key74.htm#multithreading


●Hyper-Threading
  ハイパースレッディング

 Intelが開発し、将来のCPUに搭載を予定している、SMT(Simultaneous Multi-Threading)技術。

 CPUの処理速度を向上させるために、x86系ではまず最初に、パイプラインという技術が採用された。パイプラインは、命令の実行に必要な処理をいくつかのステージに分け、それぞれを個別のユニットが担当。各ユニットは同時に処理が行なえるようになっており、ちょうどベルトコンベアの流れ作業のように、次々に命令を処理する仕組みである。次に、演算器を複数用意し、複数の命令が同時に実行できるようにしたスーパースカラへと発展する。スーパースカラでは、アウトオブオーダーや分岐予測、投機実行といった機能の強化が行なわれ、少しでも効率良く並列実行が行なえるように努めて来たが、1つのプログラムの中の命令の流れには、依存関係が強い部分が多々あるため、CPUの利用効率の向上は頭打ちになりつつある。並列実行できる命令が無かったり、分岐予測や投機実行に失敗してご破算になってしまったりといったことがままあるのだ。

 これを打破するために、ItaniumではVLIW(Very Long Instruction Word)を採用。これは、あらかじめ並列実行に最適なコードをコンパイラに生成させ、スーパースカラを効率良く動かそうというアプローチである。

 SMTは、これとは別のアプローチで、利用効率の向上を図る。現在のマルチタスク(マルチスレッド)のOS環境では、同時に複数のプログラムが実行されている。同時に実行されている別のプログラムの中のコードならば、並列実行の妨げになるような依存関係は全くない。通常のマルチタスク(マルチスレッド)は、CPUが各プログラムを少しずつ実行(※1)して行くスタイルだが、CPUのクロックサイクルの中で…すなわち、命令の実行レベルで分け与えることができれば、スーパースカラが持つ命令の並列実行機能を、より有効に活用できる可能性が高い。個々のプログラムの高速化にひたすら専念するのではなく、CPUの利用効率を少しでも上げて、システム全体の処理を高速化。そうすれば、結果として個々のプログラムもその恩恵に授かれるという発想である。

 このように、スレッドレベルの並列処理を命令レベルの並列処理に展開してパフォーマンスの向上を図る技術をSMTという。IntelのHyper-Threadingは、1つのCPUを2つのCPUに見せることによって、マルチプロセッサ対応OS上でこのSMTを実現する。マルチプロセッサ対応OSは、個々のプログラムを複数のCPUに分散して実行する機能を持っている。したがって、CPU自身が2つのCPUとして振る舞えば、上位のシステムに大幅な変更を加えることなく、SMTに必要な独立した2のプログラムを、OSが送り込んでくれるというわけだ。

※1 タイムスライスの時間やプロセスに与えられる実行単位(クォンタム)、優先順位などによって大幅に変わるが、だいたい10~百数十ミリ秒程度。

【参考】
□マルチプロセッサ
http://pc.watch.impress.co.jp/docs/article/971118/key7.htm#smp
□スーパースカラー
http://pc.watch.impress.co.jp/docs/article/981021/key51.htm#superscalar
□マルチスレッド
http://pc.watch.impress.co.jp/docs/article/990423/key74.htm#multithreading

[Text by 鈴木直美]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp

Copyright (c) 2001 impress corporation All rights reserved.