予測変換とマルチコアプロセッサー

好みの問題やキーボードとの組み合わせに影響を受けながらも、多くのモバイル機器(電話を含む)予測変換というものが採用されています。
逆に言うとPCで採用されていないのはなぜだろうと思うのですが、実際にOQOで使ってみてどうだというと 操作するキーの数が逆に増えたような気がします。
Palmで予測変換を使えたのは 今になって思うと予定など特定のキーワードのような物を打つことが多く 実際に文章を打っていた訳ではなかったからなのでしょうか??
実にPalm以外では 携帯電話で少し使うぐらいで切ってしまっているのはなぜだか自分でもよく判りません。
先日書いたように間違えた候補が惑わすからというのであれば この文章にももう少し間違いが少ないと思うのですが 入って様が入ってまいが間違えるのですから一概にそのせいと決め付けられないですね。
ただ、実際に効率よく的確に動けばこんな便利なものは無いはずなのですが・・・・
 
例えば、二桁の数字を二つ思い浮かべてもらって掛け算をしましょうといったらどうします?
多くの日本人は、電卓を出して・・・・
いや、そうじゃなくて PDA でもありません。
そういった物が無いとしてどう計算しますか?
多くの場合、紙に数字を二段に重ねて書いて下に線を引く。
そして、一桁づつかけて その二つの数字を足して結果とします。
ここにインド人が加わると、少し学のある人だったら 20位までの数字同士の掛け算は瞬時に出てきます。
日本では九九として習う掛け算を 向こうでは20までだったりそれ以上だったりするわけですから 単純な条件反射として出てくるわけです。
話を日本人に戻すと、小学校の2年生ぐらいで九九を覚えることになります。
我が家の子供も、なかなか覚えられずに苦労したようですが なまじ頭の回転の良い子は一桁同士の掛け算なら足し算で算出してしまい 覚える必要が無いようです。
故に覚えられずに苦労する子もいるようですが、前述のような二桁を超える掛け算のときに 足し算で処理していると大変な数の計算が必要となるために 丸覚えが早いと後ほど気が付くことでしょう。
で、その計算なのですが
実はコンピューターは、足し算を繰り返します。
勿論、いまどきのCPUは掛け算ぐらいは命令セットに組み込まれていますが、内部的にはシフトをかける方法か加算を繰り返し掛け算としている場合が多いようです。
気にならないのはその速度があまりにも速いからです。
それでも、Superπなどのように 計算の為の計算のようなことをさせるとそれなりの時間がかかります。
ただ、数秒で人が紙に書いて行う一生分ぐらいの計算をするわけなのですが・・・・
 
そう考えると、CPUも九九を覚えていると速くなるんじゃないかと思ったりして・・・・
勿論、そんな単純なものではなくもっと複雑な数式の解を導き出すためのテーブルを持っていれば良いのでは??と思わなくもありません。
で、テーブルを持った手法が、現在のCPUです。
単純命令だけを処理するRiscコアに複雑な命令形態をもつCISCの命令をデコーダー(翻訳機が正しいかも)を通じて処理をさせているわけです。
ハードでやっているかソフトでやっているかで、IntelなどのCPUなのか Transmeta等のソフトウエアーCPUなのかとなるのですが・・・
Transmetaの場合は命令のデコードのパターンをメモリーにおいてキャッシュとして使い 同じ命令が二度以上実行されればそれを使い高速化を計るという手法をとったのですが やはりかけた開発費が低すぎて対抗するに至らなかったというのが本当でしょう。
 
同じような手法で、技術計算などでは例えば 耐震強度の計算などは(レベルによりますが)地震の種類やゆれ方をシュミレーションするような事を行うのは大変な処理で、ただ 同じ計算でパラメーターが変化するような計算が多いのでそういうときに登場するのが専用の演算プロセッサーなのですが。
これは九九を覚えるとと同じように、計算の手順を内部に持っていて CPUがソフトウエアーで演算を行うのに対して 特定のパターンに特化した回路で高速にハードウエアーで計算するものとなります。
例えば、WindowsもVistaになって Aeroというユーザーインターフェースが出てきました。
3Dに展開するデスクトップは 今までのパネルの上を動くインターフェースに加え 奥行きのある空間に存在するかのような画面となります。
処理が動くたびに3Dの計算が必要となります。
 
勿論、これを動かす為にはDirectXの最新のバージョンに対応したビデオカードが必要で これをソフトで肩代わりするととても使えないぐらい遅くなることは間違いありません。
VistaもHomeBasicをプレインストールしてくるような機器であれば当然まともには使えないでしょう。
逆に言えば、aviさんも書かれている通り 対応したビデオカードのPCであれば使うほうがビデオカードに処理の多くを持ってゆけるために楽になるのでしょう。
ただ、いつまでもこれはビデオカードの領分でしょうか??
マルチコアのCPUでは、Intelは同じコアを服す置く手法をとる事を当面のスケジュールとして発表しています。
AMDは同じコアを置く手法は そう遠くない未来に行き詰まり 異なるコアを搭載する手法となるでしょうと。
その異なるコアが、3D専用のでも良いですし Vista Aero専用のコアおいう手法もあるわけです。
それは今動いているから必要ないと思われるかもしれませんが、現在最も売れているビデオカードがCPUのコンパニオンとなるチップセットの中に組み込まれているビデオチップだといえば判ってもらえると思いますがコスト的に有利に働くわけです。
 
現在、Aeroを正式にサポートするビデオカードは専用の冷却装置を必要とするもので 多くの部分で3Dの計算に重みを置いています。
では、その計算部分がCPUだとすれば どうせCPUは強制冷却されている部品ですから多い少ないの問題はともかく冷やされています。
ただ、これによってビデオチップの負荷が下がればそこに専用の冷却装置が必要なくなるかもしれません。
もっと言えば、現在はチップセットを小さくしようとしていますが モバイルノートPCのように大きな集積チップはCPU+一つのチップセットという構造にすることが出来るかもしれません。
コストと将来性から考えれば行き着く先かもしれません。
 
将来が正しいからといって、近い将来がそうだとは限りません。
開発の問題や、3Dチップとビデオチップのデータの転送量の確保など今のところ解決できない問題があり(と今のところ言われているが、対抗陣営に対する批評かもしれないのでなんとも)すぐに実現する技術ではないでしょう。
AMDのATI買収は、それが明日からでも実現するだろうと見せる意味があったと(つまりはったり)という人もいるぐらいです。
実際の正しさは歴史が証明するのですが、予測変換もそうですが 処理のパターンが段々読めてくれば色々なことが出来るようになるのですね。
でも、このデータの蓄積によって発生したものって 新しい技術の開発となるのでしょうかね??