DEC Alphaは世界最高のクロック周波数を誇るRISCマシンです。
クロックが速けりゃいいもんじゃないという気もしますが、僕は PDP11を知っ
たときからのDECファンでとってもAlphaが欲しかったのです。
また、Alphaの世界では、int(もっとも自然な整数)のビット幅は64bitです。
でも、ここで普通に出来あいのマシンを買っても楽しくありません。
この計画が動き出したのは、もう数年前になります。この計画にちょうどいい AXPpci33というボードが発売になったのです。AXPpci33にはWindowsNT版とDEC UNIX版がありました。 僕はすかさずそのUNIX版ボードを入手し、DEC UNIXを入れ、今も使っています。 AXPpci33上でDEC UNIXを動かした人間としては、僕は日本ではかなり早い方だっ たのではないかと思っています。しかし、DEC UNIXのライセンス料は只ではなく、 WindowsNT版ボードが羨ましく思えたものです。
そうしていると、Alphaの上で、Linuxが動くという話が聞こえてきました。僕 はフリーなUNIXが大好きなので、Linux/Alpha Blade0.2を入れました。これはこ れで使えなくはなかったのですが、やっぱりLinuxはLinuxです。だいたいネット ワーク管理コマンドが酷すぎます。パラメータが違うので、使いづらいことおび ただしい。
やはり本物のUNIX、それも本物のBSDを使いたい。なんの努力もせずにそのよ うに願っていたところ、ついにNetBSD/Alphaが聞こえてきました。NetBSD/Alpha 1.1-currnetは夏前より動きだしていました。 そして、この秋、NetBSD1.2がリリースされ、NetBSD/Alphaも正式にリリース されました。 ここで、UNIXのライセンス料金不要の本当の赤貧RISCマシン補完計画は完遂さ れたのです。 ということで、本稿は、手に入り易く安価なAXPpci33という、DEC Alpha 21064 233MHzの搭載されたマザーボードで、NetBSD 1.2/Alphaを動かすお話です。 自宅に DEC Alphaを置き、その上でNetBSDを動かすのも、一つのセカンド・イ ンパクトといえるでしょう(か?)。
マザーボードにはDEC社の純正品 AXPpci33ボードを使用します。
この基板は OEMを意識して作られた物で別名「noname」とも呼ばれます。
NetBSD/Alphaや Linux/Alphaのドキュメント中でもしばしばnonameとして参照さ
れています。
CPUとしてAlpha AXP 21064 233MHzを搭載済みのもので、最近では、秋葉原の
「ぷらっとほーむ」や大阪日本橋の「ファーストバック」でも売られています。
さすが高速を誇るAlphaチップだけあって、CPUには巨大なアルミのヒートシン
クが取り付けられています。3.3V駆動でこのバカでかさ。入手時には感動しまし
た。
お店で売られているのは、通常、WindowsNT版です。
ちなみに、買ってきたそのままでは、DEC UNIXもNetBSD/Alphaもブートさせる
ことができません。
最近の Linux/AlphaはブートローダがWindowsNT用モニタにも対応しているので、
このままでも大丈夫なはずです。
マザーボードのWindowsNT版とUNIX版との違いは、
WindowsNT用モニタは「ARC」と呼ばれ、Mips CPUを使用したマザーボードなど にも搭載され、WindowsNT標準ソフトウェアです。メニュー・ドリブンで使用感 はあんまり楽しくありません。
DEC UNIX用のモニタは「SRM」と呼ばれ、コマンド・ラインで対話する、通好
みのモニタです。:-)
NetBSDのブートのために、モニタをARCからSRMに変更しなければなりません
(後に詳述)。
キーボード・コネクタはWindowsNT版ではIBM PC-AT用の大きなコネクタ。
UNIX版ではPS/2シリーズの小さなコネクタとなり、物理的な大きさが異るだけ
で電気的、論理的には、まったく同じ物です。
PS/2マウス・コネクタはUNIX版にのみ存在し、WindowsNT版には存在しません
(WindowsNTでは、シリアル・マウスを使用する)。
基板は同じ物なので、単に WindowsNT版にPS/2マウス・コネクタをハンダ付す
れば良さそうなのですが、そうは問屋が卸しません。
僕がキーボード・コネクタをそのままにして、PS/2マウス・コネクタだけをは
んだづけして試したところ、PS/2マウスは認識されませんでした。
ひょっとすると、キーボード制御用マイコンのファームウェアが異なっている
のかも知れません。
PS/2マウスがなくてもNetBSDはブートできるので、一度、全部組み上げて動作 確認した後X windowサーバについては考えるべきでしょう。
このマザーボードは、一般的なIBM PC互換機のマザーボードと同様、
僕は、
ATI社製Mach64 DRAMを使用しています。
これは、DEC UNIXが要求したもので、あまり深い意味はありません。
WindowsNTでは快調に動作しています。
DEC UNIXのX Windowサーバも快調に動作します。
また、Linux/Alphaでも使えるはずです。
ところが、NetBSD/Alphaでは、コンソールは問題ないのですが、X Windowがサ ポートされていません。
NetBSD/AlphaのX Windowサーバは、DEC社製のTGAというボードしかサポートし ていないのです。 僕の赤貧RISCマシン補完計画もここは噸座しています。
新たにビデオボードを購入する場合は、TGAを入手すべきでしょう。しかし TGAは現在日本橋のお店では手に入りません。
TGAはDEC純正のビデオカードです。NetBSD/AlphaのX windowサーバは現在、こ のカードしかサポートしていません。
TGAと呼び習わされているカードにも何種類かあるようです。
僕が入手した物は、ZLXp-E1 (PBXGA-AA)という型番のものです。このビデオカー
ドは8プレーンなので、256色のX Windowサーバが動きます。
このビデオカードには、4PのDipスイッチがついています。ドキュメントが入 手できていないので詳細は不明ですが、僕の実験によると、このスイッチはリセッ ト直後の解像度のデフォールト値を指定する物のようです。
実験によって得られた、代表的な設定値を示します[表1]。
TGAはDEC UNIXでも、WindowsNTでも快調に動作します。
Dip SW 1 | O | X | X | O |
---|---|---|---|---|
2 | O | O | X | O |
3 | X | X | X | O |
4 | O | O | O | X |
グラフィック解像度 | 640×480 | 640×480 | 1024×768 | 1024×864 |
テキスト解像度 | 52×21 | 66×27 | 80×34 | 80×34 |
NetBSD/Alpha、Linux/Alpha、WindowsNTは、DECのEthernetチップの載った
Ethernetカードをサポートしています。
しかし、I/Oポートのアドレスなどが仕様として固定されている訳ではなく、一
部、動作しないカードも存在するようです。
僕は、
DEC社のカードは自動切り替えも問題無く動作します。
SusTeen LANMASTER FastEthernetはDEC Chipを使用したEthernetカードです。
NetBSD/Alphaでちゃんと使用できます。100Baseという名前ですが、10BaseTと
100BaseTXの両用です。それぞれに別個にコネクタが用意されているので、
10Base/100Baseの自動切り替えに付随する問題が少なくなっています。
残念ながら現在では入手困難です。
NetBSD/AlphaとLinux/Alphaでは、Planet社のPCI Ether 100Base-TXボード (DECチップ搭載)も使えると聞いていますが、確認はしていません。
ハードディスク(以下HDD)は、SCSIディスクならなんでも良いのですが、最初
のインストールには、406MBytes以上の容量が必要です。
それというのも、NetBSD/Alphaはrz25という406MBytesのHDDイメージをそのま
ま配付しており、最初はそのイメージをそのままHDDに書き込んでブートさせる
しか起ち上げ方法がないからです。
やっぱりハッカーの仕事というのは、かく有りたいものですね。:-P :-)
NetBSD起ち上げ後、ディスク・ラベルを編集してHDDの容量を使い切ることに します。
そのために、あらかじめ、 sector/track, track/cylinder, cylinder 数など
を調べておきます。
これらを知るには、
必要な時に、意外と手に入らないのが、マザーボードから匡体の後ろにコネク
タをだすためのケーブルです。
AXPpciには、IBM PC互換機用のケーブルがそのまま使えます。
ケーブル屋さんで、ケーブルを作ってもらうための資料も書いておきます。
AXPpciの基板上のコネクタは10pinです。
DCD(1ピン) | RXD | TXD | DTR | SG |
---|---|---|---|---|
DSR | RTS | CTS | Ring | FG |
IBM PC互換機の9pinシリアル・コネクタは
(1番) ¥-------+-------+-------+-------+------/ ¥DCD |RXD |TXD |DTR |SG / ¥----------------------------------/ ¥ DSR | RTS | CTS |Ring / ¥-------+--------+-------+-----/ (オスコネクタを圧着側から見たところ)です。
そこで、ケーブル屋さんで、コネクタを圧着して作ってもらう時には、
これでIBM PC互換機で一般的なシリアル・ケーブルができ、AXPpci33でも使用 できます。
IBM PC互換機用のフロッピ・ドライブを使用します。
DEC UNIXではあまり必要性を感じませんが、今回、モニタ・ソフトウェアをARC
からSRMへ変更するために、必要です。
NetBSD/AlphaのX Windowサーバは、PS/2マウスを必要とします。
DEC UNIXでは、Logitech社の3ボタンPS/2マウスが快調に使えています。
PS/2マウスが認識できないと、SRMモニタが起動時にmouse errorを報告します。
蛇足ながら、WindowsNTでは、Logitech社のシリアル3ボタンマウスも使えます。
IBM PC互換機用なら大抵なんでも大丈夫です。
ただし英語版(JISでない配列) でないと色々と不便です。
僕はT-Zoneで安売りされていたDEC純正キーボードを使っています。:-)
匡体はどんなものでもいいのですが、CPUの上に巨大なヒートシンクがあるの
で、それが他の部分と干渉しないような大型の物がいいでしょう。
また、ヒートシンクにじかに冷却風があたるものが、望ましいでしょう。
5Vから3.3Vに降圧するレギュレータのヒートシンクは非常に熱を持ちます。こ
のヒートシンクには何も接触しないように気をつけるべきです。
僕はGT-300という割と有名な匡体を使っていますが、上記条件をすべて満たし
ている上に非常にメンテナンスがしやすく、気に入っています。
ただし、PS/2マウスを使用するには、コネクタが顔を出す穴を加工しなければ
なりませんでした。
パリティー付き70nsecの72pinSIMMです。2つを一組として実装しなければなり
ません。
SRMモニタは32MBytes以上のメモリが実装されていないとまったく起動しませ
ん。
ちなみにARCは16MBytes以上で動作し、WindowsNTのインストールは可能なよ
うです。
32K×8bitか、128K×8bitのスタティックRAMを使用します。
IBM PC互換機で一般的な外部キャッシュ用メモリです。
パリティ(ECC)も必要なので、全部で11個使用します。
SCSI CDROMなら、DEC UNIXでもWindowsNTでも使えます。
しかし、現行のNetBSD/Alphaからはうまく使えません。よって、是非とも必要
なものではありません。
ZipドライブはNetBSDからはHDDにみえます。
WindowsNT4では、リムーバブル・ドライブとして認識されます。
OSのブートにも使用できるので、色々な OSを切り替えて使う時には便利です。
アクセス速度はフロッピに毛が生えたようなものですが、 OSが一揃い入って、
ブートできるという利点は侮りがたいものがあります。
組み立ては、5V電源のコネクタ(3.3V用電源コネクタもある)を間違えなければ、
あとは各コネクタの1番ピンに注意するだけです。マザーボードに付属のマニュ
アルをよくみれば、なにも難しいことはありません。
ジャンパJ8は、リセット・スイッチを本当のリセットとするか、割り込みとす るかの切り替えですが、我々には、リセットの方が便利なので、Reset (Pin1-2 ショート)にしておきます。
部品を組み上げたら、とりあえず電源を入れて起動実験を行います。一番最初 は、HDDはつないでおかない方がいいかも知れません。
異常がなければ、モニタ・ソフトウェアが起ち上がります。
UNIX版マザーボードならば、画面が暗いままの状態で数秒経過したあと、SRM
モニタが起ち上がります。
SRMが使える場合は、NetBSDのインストールに進みます。
WindowsNT版マザーボードならば、ARCモニタが起動します。
ARCでハードウェアの確認をするには、
AXPpci33のSCSIバスは高速動作を行うので、SCSIデバイスが見つからないこと
があります。
そういう時は、ターミネーションを確認して、必ずSCSIバスの両端にだけター
ミネータが存在するようにします。また、SCSIデバイスはパリティをイネーブル
しておきます。
ハードウェアに問題ない場合、WindowsNTのインストールならそのまま始めら れます。(ちなみにWindowsNT V4 日本語ファイナルβは、このマシンで快調に動 作しています)
ARCモニタの場合は、NetBSDのために、モニタ・ソフトウェアをSRM にします。
ARCからSRMへモニタを取り換えるためには、ファームウェア・アップデイト・ ソフトウェアを入手しなければなりません。
ファームウェア・アップデイト・ソフトウェアはDEC社のftpサイト ftp://ftp.digital.com/pub/DEC/Alpha/firmware/ から入手可能です。
ftp://ftp.digital.com/pub/DEC/Alpha/firmware/v3.7/decaxppci33/ には、以下のようなファイルがあります。
-r--r--r-- 1 0 0 904704 Aug 19 08:11 decaxppci33_v1_4.exe -r--r--r-- 1 0 0 905216 Aug 19 08:11 decaxppci33_v1_4.sys -r--r--r-- 1 0 0 903168 Aug 19 08:11 decaxppci33_v1_5.exe -r--r--r-- 1 0 0 903680 Aug 19 08:11 decaxppci33_v1_5.sys -r--r--r-- 1 0 0 1854 Aug 19 04:04 fwreadme.txtここではv1.5を使用しました。
以下、ARCでのファームウェア・アップデイト・ソフトウェアの使用方法です。
% mwrite decaxppci33_v1_5.exe a:fwupdate.exeとします。
Apu-> u srmイメージをRAMにロード、ベリファイ後、最終確認プロンプトが出るので、
APU-I ****** READY TO PROGRAM DEVICE ? (Y/N ) ****** y'y'を入力します。このあと、電源異常などでシステムが落ちないように緊 張しながら待ちます。:-)
Rom Update Successfulと表示されたら終了です。
Apu-> v srm
また、万が一、ARCに戻したくなった時のために、
ftp://ftp.digital.com/pub/DEC/axppci/fw_v1_4.image
も入手しておくべきです。
これは、SRMでブート可能なfirmware V1.4のフロッピ・イメージです。このイ
メージがなければ、SRMをARCに戻すことはできません。
このイメージをfwupdate.exeから作ることは、DEC UNIXが稼働していれば可能 です。が、そういう環境はめったにないでしょうから、イメージで入手しておき ましょう。
このイメージを、FreeBSDなどで、
% dd if=fw_v1_4.image of=/dev/rfd0a bs=40960などとしてフロッピに書き込みます。
SRMからフロッピをブートする場合には、
>>>b dva0とします。
ここで作成したフロッピはFlashROM内のモニタが壊れた時の修復にも使用でき るので重宝します。(モニタが壊れた時には、SROM SelectジャンパJ29の1-3 を ショートし、このフロッピをブートに使用して、モニタを修復できる)
SRMが起動したら、まずハードウェアの確認をしましょう。
>>>sho devSCSIデバイスは、dka?00と表示されます。'?'はSCSI-Idと同じ数字です。 フロッピはdva0、EtherI/Fはewa0です。 メモリ容量の確認は
>>>sho memです。 もっと詳しい情報が欲しい時には、
>>>sho configとします。
>>>shoとすると、現在の環境や変数が表示されます。
>>>set console serial >>>initこれで、シリアルラインCOM1に接続した端末をコンソールにできます (通信条 件: 9600bps, 8bit, NoParity)。
>>>set console graphicsとします。
NetBSD1.2はftp.netbsd.orgなどから手に入ります。
日本国内ならば、国内のミラーサイトから入手すべきでしょう。
最初のインストールには、
NetBSD-1.2/alpha/binaries/rz25-image.gzだけあれば大丈夫です。
このrz25-image.gzは400MBytesのHDD全体のイメージをddで読みだしてgzipし
たものです。
インストールするには、逆にgzipを解きながら、ddしてHDDに書き込むだけで
す。簡単ですね。しかしなんというダイナミックさ! :-)
この作業を行うには、gunzipが動作し、HDDにddできる機械が必要です。
僕は、DEC UNIXの動作しているAXPpci33で作業を行いましたが、FreeBSDマシ
ンやSUNなどでも同様でしょう。
適当な機械にHDDを接続し、
% gunzip < rz25-image.gz | dd of=/dev/rsd?c obs=409600などとするだけです。('?'は書き込みたいHDDによる)
HDDにイメージが書き込めたら、AXPpci33に接続し、SRMよりブートします。
>>>boot dka?00とします。('?'はSCSI-Id)
すると、NetBSD/Alphaのブートが始まります。
基本的なブートが終ったあたりで、日付のエラーを報告しつつ、強制的にシン
グル・ユーザ・モードになり、 shellを尋ねてきます。それには、[return]を押
下するだけで、/bin/shが起動します。
ここまでくれば、一安心です。あっけないでしょう。
さて、ここで、fstabを適切に変更しなければなりません。
デフォールトの/etc/fstabは
/dev/sd0a / ffs rw 1 1 /dev/sd0b none swap sw 0 0 /dev/sd0d /usr ffs rw 1 2となっています。
NetBSDの入っているHDDがsd0でない場合は、以下の手順でfstabをエディット
します。(UNIXマガジン読者なら書くまでもないでしょうが)
ここでは、/dev/sd2にNetBSDが入っているとします。
# mount -u /dev/sd2a / # cd /etc # ed fstab 1,$s/sd0/sd2/ wq #とします。
この後、shellをexitすると、マルチ・ユーザ・モードへ移行します。
これで、NetBSD/Alphaの起ち上げは完了です。
なお、コンソールのターミナル・タイプは'sun'とするべきらしいのですが、 エディタなどが今一つうまく動きません。スクリーン・エディタを使う場合には、 別なホストからrloginなどして、別な端末を使った方が楽なようです。
NetBSD/AlphaはBSDの伝統に従っているので、BSDでは常識的な設定ばかりです。
以下にNetBSD/Alphaで必要な設定項目を列挙します。
inet ホスト名を入れる。(ホスト名は/etc/hostsに存在すること)
# rm /etc/localtime # ln -s /usr/share/zoneinfo/Japan /etc/localtimeとする。
nfs_server=NO nfs_client=NOを
nfs_server=YES nfs_client=YESとする。
最後に、NetBSDをシャットダウンし、SRMで
>>>set boot_osflags Aとしておくと、以降、自動的にマルチ・ユーザモードに入るようになります。
>>>set bootdef_dev dka?00(?はSCSI-Id)としておくと、bootコマンドで、デバイスを指定する必要がなく なります。
今どき400MBytesのHDDなんか無いので、たぶん、インストール直後はHDDが無
駄になっていますね。
そこで、早いうちにディスクラベルを書き換えて、400MB以上の部分も使える
ようにします。
今入っているNetBSDを消すと、再度入れ直す手間が生じるので、 今回は新たにパーティションを追加することにします。
NetBSD/Alpahは
Sector/track, track/cylinder, cylinder数などは、あらかじめわかっている
とします。
僕は、ここではQuantumのLightning 730Sという720MBytesHDDを使用していま
す。
またHDDは/dev/sd2であるとしています。
disklabelコマンドを-eオプション付で起動します。
# disklabel -e /dev/sd2cとすると、ディスク・ラベル情報をバッファに持ったエディタが起動します。
まず、下記のエントリを、HDDに合わせて適切に編集します。
sectors/track: 97 tracks/cylinder: 4 sectors/cylinder: 388 cylinders: 3658 total sectors: 1431760次に、パーティション情報を
5 partitions: # size offset fstype [fsize bsize cpg] a: 111600 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 287*) b: 111600 111600 swap # (Cyl. 287*- 575*) c: 1431760 0 unused 0 0 # (Cyl. 0 - 3690*) d: 600408 223200 4.2BSD 1024 8192 16 e: 608152 823608 4.2BSD 1024 8192 16のように編集します。
ディスク・ラベルを書き終えたら、'e'パーティションをnewfsします。
# newfs /dev/sd2eとし、ファイルシステムとして使用可能にします。
NetBSDでは、ZipドライブはHDDと同じに見えます。
ZipドライブからNetBSDがブートできると便利です。
とくにOSをとっかえひっかえして試している時には、Zipドライブが役に立ちま
す。
また、自分のミスで HDDを消してしまったときなど、NetBSD/Alpha は復旧が面
倒ですが、Zipで最低限のシステムをもっておくと、再インストールも楽です。
(僕は実際にそういう目に会っています ;-))
ここに記述するのは、HDDをブータブルにするのと同じ方法です。
ターゲットのZip(またはHDD)は、ディスク・ラベルも書き、aパーティション
はnewfs も終ったものを使用します。
ここの例では、/dev/sd3aとします。
# mount /dev/sd3a /mnt # cd /usr/mdec # cp boot /mnt # sync # sync # ./installboot -v /mnt/boot ./bootxx /dev/sd3cこれで、ブータブルなZipが得られます。
このあと、/netbsd, /bin, /sbin, /etc, /usr中の必要なファイルをコピーし、
/tmp,/varなどのディレクトリを作り、/dev/で必要なデバイスをMAKEDEVすれば、
完全に単独で起動するディスクになります。
なお、このZipメディアの/etc/fstabを適切に設定しておくと、非常時に慌て
なくてよいでしょう。
バイナリで供給されているXクライアントは、他のXサーバに接続して調子良く 動きます。
Xサーバは、前述どおりTGAボードでしか使用できません。
またNetBSD/AlphaのX WindowサーバはPS/2マウスしか使用できません。
DEC UNIX 用マザーボードであれば、PS/2マウスを接続して、すぐにX Windowサー
バが使用できます。
NT版マザーボードの場合は、自分でサーバを改造するして、シリアル・マウス を使用できるようにするしかないでしょう。(XFree86のサーバを真似すれば、きっ と簡単)
なお、NetBSD/Alphaのチームは、現在、TGAボードとPS/2マウスしかサポート
する気がないらしく、Linux/AlphaのXFreeサーバなんぞを参照をする気もまった
くない様子です。
(Linux/AlphaのXサーバはXFree86を元に、数種類のビデオ・カードをサポート
しています)
AXPpci33は基板での販売ですが、AXPpciとよく似たアーキテクチャを持ち完全 なシステムとなっているものもDECより売り出されています。
これがMultiaまたはUDB(Universal Desktop Box) と呼ばれるマシンです。
これらの機械も NetBSD/Alphaのサポート・リストに載っています。
(Multiaと UDB は正確にはその位置付けが違うのですが、ユーザにはとっては
大した意味はないでしょう)
Multiaは非常に小さくてかわいい匡体内に Alpha CPUをはじめ、TGA、音源、
Ethernet, HDDなどすべてを収めた上で、最小構成定価が20万円を切る画期的な
Alphaマシンでした。が、残念なことにすでに製造中止となっています。
しかし、Multiaとほとんど同じ構造の機械が、「Digital's Easy Web Server」
として、今でも販売されているかもしれません。
(DECのWWWページ
http://www.digital.com/info/internet/brochure/ews_abs.html
が現在もあります)
さて、今回、Multiaも入手できたので、NetBSD/Alphaを試用してみました。
MultiaのファームウェアはSRMとARCをFlashROMに同居させ、モニタ・コマンド で簡単に切り替えられるので、非常に便利です。
MulitaがARCになっている場合は、
SRMが起動したあとは、AXPpciとまったく同様にNetBSD/Alphaが稼働します。
なお、僕が入手したMultiaのTGAはX Windowが1024×768で動作するモードに設
定されていました。(内部ジャンパの変更で画面解像度が変更できるようですが、
僕は確認していません)
ファームウェアをSRMからARCにするには、SRMプロンプトで
>>> arcとするだけです。
Mulitaは日本の家庭やオフィスにぴったりの機械なので、生産中止になったこ とは非常に残念です。
僕のAXPpciは昔に購入したものなので、旧版のCPUが載っており、実は、
166MHzでしか動いていません。
そのマシンで少しばかり、ベンチマークを行ってみました。
比較のために同一AlphaマシンのDEC UNIXと、SparcStation10でも、同じベン
チマークを行いました。
OS,cc(Cコンパイラ)のバージョンは次の表の通りです。
マシン | OS | Cコンパイラ | dhrystoneオプション | whetstoneオプション |
---|---|---|---|---|
Alpha | NetBSD1.2/Alpha | gcc version 2.7-95q4 | -O4 DREG=register | -O4 whetd.c -lm |
Alpha | DEC OSF/1 V3.0B (Rev. 358.78); Wed Nov 16 02:23:47 EST 1994 |
The DEC OSF/1 AXP Compiler Driver 3.11 | -O4 DREG=register | -O4 -migrate -float_const -ansi_alia whetd.c -lm |
SparcStation10 | SunOS Release 4.1.4-JLE1.1.4 (GENERIC) #1: Mon Nov 21 19:44:32 JST 1994 |
SunOS標準 | -O4 DREG=register | -O4 |
ベンチマーク結果は次表の通りです。
Dhrystone1.1 (2nd cache=1MB) |
Dhrystone1.1 (2nd cache無) |
Whetstone double (2nd cache=1MB) |
Whetstone double (2nd cache無) |
|
---|---|---|---|---|
NetBSD/Alpha | 116279 dhrystones/sec | 92592 dhrystones/sec | 30303 KIPS | 25641 KIPS |
DEC UNIX | 186955 dhrystones/sec | 121951 dhrystones/sec | 80128 KIPS | 58823 KIPS |
DEC UNIX (ccオプション-O4のみ) |
- | - | 50658 KIPS | 37037 KIPS |
SS10 | 87719 dhrystones/sec | - | 38461 KIPS | - |
なお、DEC UNIXのwhetstoneでは、コンパイラ・オプションを変えて同一ベン チマークを行ってみました。(表中に「(オプション-O4のみ)」と記述)
巷の評判通り、DECのCCは性能が良いようです。
また、2次キャッシュがなければ、折角のAlphaの性能が出ないようですね(当
然 :-))。
なお、数値計算の高速化に関しては、Linux/Alphaの日本のメイリング・リス ト(linux-alpha-jp)に、ライブラリやgcc, f2cに手を入れて、努力されている人 が多数おられます。数値計算性能をチューニングしたい場合は、 linux-alpha-jp (majordomo@kuamp.kyoto-u.ac.jp)に入るべきかも知れません。
166MHzで上記の性能が出ていますから、233MHzだともっと期待できますね。
さぁ、貧しい中にも楽しいAlphaの世界が開けてきたでしょう。
AXPpciは安くてもそれなりに速い機械です。みんなが持ってるIntelより、浮
動小数点演算が速いので、3Dポリゴンゲームを実行すると楽しいです。
なお、現在、NetBSD/Alpha-currentはECOFFバイナリ対応のために大幅な変更 が加えられているようです。 が、currentを追いかけるには体力が必要なので、NetBSD/Alphaについては、 これで一応の完としておきます。;-)