← やらかい | メイン | 完了(BlogPet) →

2006年01月11日

りんご

アップルの新しいPCの情報が解禁されたみたいですね。

インテル入ってるiMacOpen@NewWindow
そりゃ、見た目のインパクトは薄いよね。けど、パソコンの中で何がおきてるのか、ということを大体しってる僕としては分かってはいたけど、やっぱり驚いているわけで。

前々からCPUをIBMのからインテルのに変えるぞーと言ってたわけだけど、なかなかどうしてそれほど簡単じゃあない。

例えばIBMさんの場合。
8734+5675=14409という計算をする、とした場合。
内部でどういう処理してんのかと言うと
0x221E+0x162B=0x3849(わかりやすく16進数表記)
という結果になる。逆にインテルさんの場合。
0x1E22+0x2B16=0x4938
16進数2ケタをセットとして上下入れ替わってるわけで。

もっと抽象的に門外の人に説明するなら日本語と英語の違い、みたいなもん…かなぁ。
目的を決めてあとから何をどうするか、という文脈が明確な英語と、最後まで話を聞かないと意味が理解できない日本語。

余談だけどパソコンの操作(GUI)は大変英語的だなーと思う。何をどうするか、というのは英語的な文脈に則る操作ではないかしら。

MacOSがXになって、インテルとIBMの差を意識しないソフトウェア作りがされていると言われてたけど、CPUの差を本当に吸収しやがったのか!と驚嘆せざるを得ない。
改めて言うことでもないけど、コンピュータってのは「基本的には」足し算しかできない。引き算は正数と負数の足し算だし、掛け算は反復足し算。割り算も同じようなもんだ。こうやってネットに出てページを閲覧してるのも結局のところ文字列演算に代表される計算の結果にほかならない。
これも余談だけど、10年くらい前に「今度のインテルのCPUは掛け算回路と分岐予測回路が内蔵だって!」「マジかよ!それはヤバイ!!計算しまくり!!分岐しまくり!!」などと休み時間に教室で友人達と驚いてたもんですよ…マニアックに解説すると、CPUに対して行う命令の中で処理コストが比較的高いのが条件分岐処理。条件判断するときの値によってその先がえらく変わってしまうわけで、処理の先読みということが当時としてはなかなか実現できなかったわけだ。だから高速処理が求められるゲームのプログラムをする時なんかは、いかにして分岐を減らすか?に腐心してたわけです。うん、コアだね。ちなみに今でも計算回数が膨大な原子運動シミュレーションなんかをする時は同じように処理の高速化をやったりしますよ。

で。計算の法則がCPUを変えることで変わっちゃうわけだから。これはどうみたって大事だ。明日から7掛ける8は43になりますよー、って言われると世界中で混乱するよなもんで。

iPodも好調だし、アップルさんスゲエなぁと思いました。