主に、コンピュータの System bus に関する質問への回答です。
Subject: Re: [PC 07491] FIFO DMA Busmaster etc Date: Sun, 16 Mar 1997 10:43:52 +0900 > HDDなどの転送方式にFIFO,Dual-FIFO,DMA,Bus Masterなどがありますが、 > それぞれどのような特徴があるのでしょうか。 大きく二分すると、DMA と PIO の二種類があります。 上記の FIFO は PIO に、Busmaster は DMA に含まれます。 PIO は Programmed Input Output (だったっけ?)の略です。 CPU がプログラムによってデータを転送する方式です。 この際、1Byte 毎に割込みがかかると非常に負荷が重くなります。 なので、FIFO を付けて何バイトか纏めて処理可能にする場合が多いです。 最近の石なら、セクタサイズくらいの FIFO を積んでいる事が多いですね。 Dual FIFO が何かは判りません。基本的には↑と同じだと思いますが。 # ちなみに FIFO は First In First Out の略で、先入れ先出し法の事です。 DMA は Direct Memory Access の略ですね。 CPU を介さず、直接メモリをアクセスする事をいいます。 普通は DMAC (DMA Controller) が存在していて、これに転送要求をする事に よって転送を行ないます。 しかし、8086 系 PC の場合、8085 時代からの流用品の非常に低速な DMAC し かありませんでした。今でも互換性の為、これの互換品が使われています。 その為、CPU が 80286 くらいになると PIO 転送の方が速くなってしまい、あ まり使われる事はありませんでした。 # EISA では DMAC の拡張が行なわれたそうですが、主流ではないですね。 で、Adapte の 1542 の様に、外部に独自に構成した DMAC を置く物が出てき ます。原理的には DMA の方が PIO よりも効率が良いので、遅い DMAC を使わ なければ良いのです。これを Busmaster と呼ぶようになりました。 Triton の場合はどうなんでしょうね? どうも PCI-ISA Bridge の中にある旧来の DMAC を拡張したらしいとの話も聞 きますが、真面目に資料を調査してないんで、良く判りません。 ま、どーせこれらの呼称の殆どは宣伝文句の一般化なので、厳密な使い分けは 存在しないという気もしますが。 # 上記も私の理解での話です。あまり正確でないかもしれません。 > 僕は > FIFO(データ転送時にCPUの演算を要するためマルチタスクOSの使用時等は > 不利となる。) > Bus Master(TritonなどのチップセットやSCSIコントローラーなどがデー > タ転送を司り、CPUに負荷を与えない。マルチタスクOSや非力なCPUで効果あり。 > でも、キャッシュメモリなどへのアクセスはどうなるんだろう。) > と思うのですが、DMA(Direct Memory Accessですよね)とBus Masterの区別 > やDual-FIFOは何がデュアルなのかわかりません。 FIFO/Busmaster を PIO/DMA に置き換えればそれでいいんじゃないでしょうか。 細かい差異は上記の通りです。 キャッシュの整合性の問題は複雑です。:-) 非常に簡単に云えば、CPU は自分が Bus をアクセスしていない時でも他のデ バイスがアクセスするのを見張っていて、自分がキャッシュしている領域がア クセスされたら、そのキャッシュを無効化します。 すると、CPU がその領域をアクセスした際にはメモリから読み直す事になりま す。なので、データの整合性は保たれる事になります。 これは snooping (覗き見) と呼ばれる手法で、最も簡単なものです。 これ以上の詳細に興味がありましたら、専門書をどうぞ。:-)
Subject: Re: [PC 05055] SCSI Date: Thu, 12 Dec 1996 21:42:10 +0900 # 本当は SCSI は得意では無いのですが... > このバスマスタ方式とは,そんなにすごいのでしょうか? > 2つの転送速度の違い等わかりやすく教えてください. > よろしくお願いします. Busmaster 方式の場合は、data を転送している間 CPU は別の仕事が出来ま すが、PIO 方式の場合はそれが出来ません。 DOS 等の Multi task でない OS の場合、data が来るまで別の仕事をする事 など最初っから不可能なので、どちらでも大差無いです。 「キチンと」Multi task している OS ならば、Busmaster の方が効率は良い でしょう。 実際には SCSI bus や PCI bus の速度が変わる訳でないので、「速度」自体 はそれほど差が無いと思います。 この辺の話は非常に技術的かつ複雑です。 興味が無ければ深入りしない方がいいと思います。 # 説明すると、ひじょーーーーに長くなります。 # あまり興味の無いだろう事を長々と書くのは自粛します。:-) > ちなみにマシンはDELL GXMT5200だそうで,とりあえず > MOを接続したいようです. MO だけしか継がないのなら、それ程性能が要求される訳でも無いですし、安 い方で構わないんじゃないでしょーか。 逆に、Win95/NT は Multi task なので Busmaster の方がいいかもしれません。 Adaptec にこだわらなければ、ASUS SC-200 等の NCR SCSI chip の物や、 TEKRAM の DC390 といった 10,000 を切る Busmaster Interface もあります。 また、2940 系列はバリエーションが多いので、気をつけた方がいいでしょう。 私には手の届かない高級品なので、あまり情報を持ってないです。 何もアドバイス出来なくてごめんなさい。
主に、IDE に関する質問への回答です。
Subject: Re: [PC 10926] Re: about HDD no Koukan Date: Thu, 25 Sep 1997 22:20:17 +0900 話題は IDE について、です。 こういった、過去のしがらみを沢山抱えてるモノは理路整然と綺麗に纒 まっていない面もあるので判りにくいんですよね。 以下、余談です。 そもそも、SASI は 8つの ID が使え、それぞれに SCSI 同様に LUN が 8つ使える仕様でしたが、NEC の SASI HDD は ID は一つだけ、LUN 0/1 の使い分けしか対応してなかったのです。 実際の製品は、一台目の HDD には HDD controler と ST-506 の HDD を 収めた物が出ており、増設用の物は、一台目に内蔵されている controler から ST-506 で直結する HDD だけの物でした。 で、BIOS がそれしか対応しておらず、OS などもそうなっている訳です。 NEC PC-98 では SASI という抽象的な Interface を採用しましたが、 IBM-PC では WesternDigital 社の HD controler chip を直接 I/O bus に継ぐ実装でした。HDD へは ST-506 という FDD に良く似たアナログ 信号をやりとりする Interface で繋ぐ事になります。 IBM-PC の BIOS は、この controler に依存しています。 なので IBM-PC の HDD は、これと互換性を保ちつつ進化して来ました。 IDE も同様で、コマンドセットはこの WD の石の上位互換なのです。 NEC PC-98 で IDE を使う場合、異なる文化の歴史的経緯による面倒な 仕様が二重に重なる事になるので、本当にややこしいですね。
Subject: Re: [PC 10923] Re: about HDD no Koukan
Date: Thu, 25 Sep 1997 23:27:50 +0900
IDE 関係の情報が錯綜してる様なので....
> それまでのIDEの場合、
> IDE (Integrated Device Electronics)
> 1)接続できるのは、HDDのみで2台まで。
> 2)1台の最大容量は528MBまで。
この二つは IDE と PC の BIOS や driver を合わせた時の制約です。
普通の PC は IDE port を一つしか持たず、BIOS や driver などもそ
れしかサポートしていないので、必然的に2台までになります。
EIDE 以前でも、複数の IDE port を持つ機械もありました。
当然、driver などは独自に作成する必要がありますが。
容量の制限も PC の BIOS と IDE の制約がからんでいます。
| cylinder| head | sector | Max size
------+---------+-------+--------+-----------
IDE | 65535 | 16 | 255 | 137GB
BIOS | 1023 | 256 | 63 | 8.45GB
------+---------+-------+--------+-----------
Min. | 1023 | 16 | 63 | 528MB
一般に言われる IDE の 528MB という最大容量は、この二者が共通に扱
える値である表の最下行の値の組合せによるものです。
BIOS を使用しない場合、IDE の最大容量は 137GB になります。
# 実際、当時の Micropolice あたりが製品化してました。
> 3)転送速度は2ー3MBPS(1秒間で2ー3MBのデータ転送が可能。)
> という制限があった。
こちらは IDE そのものの仕様です。
「IDE そのものの制約」と「PC の BIOS で IDE を使った時の制約」が
混同されている様に思います。
これは分けて考えないと混乱しませんか?
> これが、E-IDEになると、
> Enhanced IDE
> 1)接続できるHDDは、最大で4台。
EIDE では、それの利用を促進する為、IDE bus だけでなく PC の BIOS
にまで要求がありました。
2つ目の IDE port を実装する事を推奨し、その位置や割り込みを定義
し、それらを BIOS で対応する事を推奨したのです。
> 2)1台の最大容量は8、4GBまでOK。
これも BIOS の話ですね。
上記の表での値の区切りをズラし、IDE と BIOS の間で CHS の値を変
換する事で、既に BIOS が持っている 8.4GB までの容量への対応を使
える様にしたのです。
また、これと同時に HDD に LBA という新しいモードを追加しました。
> 3)転送速度は11、1MBPSー13、3MBPS。
これは、拡張された転送モードの最高速度です。
ドライブもコントローラの双方共に旧来の低速なモードとの互換性があ
りますので、相互に入り混じった運用も可能です。
# 当然、速度は遅い方に合わせる事になります。
> 4)CD-ROMドライブも接続可能。
これは protocol の定義がなされた訳で、IDE bus 自体に何らかの変更
が加えられた訳ではありません。
なので、旧来の IDE 上で ATAPI drive を使う事も可能です。
> これによれば、ATAPI の CD-ROM がつながれば、E-IDE ってことですね
という訳で、これでは特定出来ませんね。
私の知識で、出来る限りの捕捉をしてみました。
しかし、厳密には ATA と IDE が別の規格であったり、HDD の業界団体
であるところの SFF Committee が規格をメンバー外に公開していなかっ
たりと、「正確」な情報を確認する事が非常に困難です。
どなたか、より正確な情報をお持ちでしたら教えて下さい、です。
Subject: Re: [PC 11224] IDE HDD Low Level Format Date: Wed, 08 Oct 1997 07:36:09 +0900 > IDEのLow Levelフォーマット(物理フォーマット)についてお聞きします。 > 以前BIOSでHDDの物理フォーマットのメニューが存在するという話を聞いた事が > あるのですが、見つかりません。 これは WD 社の HDD controller から ST506 IF で Drive に継いでい た頃からの名残りで、現在の IDE などに対応した物とは違います。 あの当時の機械は HDD IF が、こういった過去の物を使用する可能性も あったので載っていたんでしょうが、現在の物は殆ど IDE on-board な ので省かれてしまったのではないかと思います。 > 実は知人のHDDが壊れ、Formatでもあまり具合がよくないため物理フォーマッ > トをする事を思い付いたのですが。このかたのM/Bは、FICのPA-2011だそうです。 > ちなみに僕のASUS T2P4(AWARD BIOS)でも見つかりません。 IDE drive の方で検出して物理フォーマットを掛けてくれる場合もある かもしれませんが、それを期待して実行するのは危険だと思います。 基本的に、IDE の low-level format は機種依存すると思った方が良い でしょう。各社の Web などを漁ってみた方が良いかと思います。 > お持ちのマザーでこの項目の所在をご存知でしたらご教授ください。 手持ちの機械の中では、486 の VL の時代の AMI BIOS にありました。 も少し後の時代まで残っていたとは思うのですが、詳細は不明です。
Subject: CD-ROM and HDD at single IDE bus. (Re: What kind of scsi is fast?) Date: Sun, 01 Jun 1997 17:06:08 +0900 > >ATAPI の CD-ROM なんかだと seek 開始から転送終了までの間、ずっと > >バスを占有したままで、非常に効率が悪いです。 > 確かにこれはひどいですけど。読みとりエラーを起こしたりすると > マウスまで動かなくなったりしますね。 ここで書いた「占有されるバス」は IDE バスの事で、その間でも同じ IDE バスに継がれているデバイス以外とは干渉しないです。 # 多少のレスポンス悪化はあるかもしれませんが。 「マウスまで動かなくなる」のであれば、それは OS か Driver の責任 だと思います。
主に、SCSI に関する質問への回答です。
Subject: Re: [PC 09331] Re: What kind of scsi is fast? Date: Sun, 01 Jun 1997 04:40:41 +0900 今手元に資料が無いので、うろ覚えになりますが.... > >> > Dev1:10MHz、Dev2:20MHzの場合は、バス > >> クロック > >> > は10MHzに設定する必要があると思います。 > > これ、SCSI の話ですよね? SCSI だと、バスクロック > じゃなくて、データの転送レートの設定ではありません > か? だから 10Mbyte/sec とか 20MByte/sec になると思 > うんですが。 そうだったと思います。 これはあくまで同期転送の最高値の規定であって、規定内であればどの ような速度であっても構わなかった筈です。 > で、これらの転送レートは混在ですが、Ultra の > 20Mbyte/sec は使ったことが無いんですが、SCSI-2 で > あれば混在できていました(例えば 10M, 6.7M and 5M > って感じです)。 selection phase を非同期で行なってデバイスを確定した後、それぞれ のデバイスの性能に応じた転送等の処理を行ないます。 対象デバイスが確定した後は、他のデバイスはどの様な速度でバスが使 われていても関係無いので、選択されたデバイスの都合の良い速度で動 作させる事が可能です。 > SCSI デバイス > には TAPE drive とかの低速系もあるわけで、その辺を > 考慮してあるはずですから(確か SCSI の disconnect > コマンドなんかがそうだったかな?)、きちんと性能が出 > るようにプログラミングされているかと言うことですね。 うーん、SCSI ならこの位はやってて欲しいですけどね。 # というか、やってなければ IDE に対して性能的にメリットが無いし。 ATAPI の CD-ROM なんかだと seek 開始から転送終了までの間、ずっと バスを占有したままで、非常に効率が悪いです。 例えば、5MB/s の転送速度で seek 100ms のドライブの場合、1 sector の転送に掛かる時間は 2KB / 5MB/s = 0.0004s = 0.4ms です。 合計 100.4ms もの時間、バスを占有していながらその殆どの時間は何 もデータが流れていない訳です。seek 10ms 程度の HDD へのアクセス ならば、その間に数回処理出来てしまいます。 # なので、IDE の HDD と CD-ROM は別の port に継いだ方が良いです。 こういった無駄を省く為に導入されたのが SCSI の dis-connect/re-connect です。 IDE でも CD-ROM くらいは disconnect 可能にしようと ATAPI+ の規格 策定時に議論されてたらしいですが、その後の動向は判りません。 ULTRA ATA では disconnect の扱いって、どうなってましたっけ? # SFF の資料は入手困難なので...どなたか御存知ないですか? > >> ところで、SCSI-BIOSの設定に「非同期」なんて設定があったと思 > >> うのですが、それはまた別の話なんでしょうか? > > なんの非同期でしょうね? SCSI って普通同期転送で > したよね? もう過去の遺物かもしれませんが、同期転送も消えてはいないです。 # 今時のデバイスは、殆ど同期転送をサポートしてるとは思いますが。 ちなみに、SCSI2 での同期転送の最高速度は 5MHz です。 # SCSI1 では、明確な最高速度の記述が無かったような気がします。 SCSI2 での Fast option に対応した場合、10MHz になり、これを FAST-SCSI と呼ぶ事が多いです。 一般に Ultra SCSI と呼ばれている物は 20MHz の物ですね。 規格化がどの程度進んだか不明ですが、40MHz の Ultra-40 や、80MHz の Ultra-80 なども提案されていたそうです。 実際の SCSI3 は物理層独立だという話も聞いたような気もしますが、 最近の SCSI 動向には疎いので正確なところは判りません。 > >> > ・Bケーブルを追加する事により16bit(Wide)とし > >> て > >> > 使用可になる。コネクタはA、B用の2個があったようです > >> 。 > >> > >> Wide-SCSIは、コネクタの形も違うんですか? > > ですね。B ケーブルと言うか、68pin のケーブルだっ > たと思います。 この辺が SCSI の混沌とした所です。 Wide option が定義されたのは SCSI2 からですが、 SCSI2 の規格上 では、Wide で使用するケーブルは A,B 二本合わせて 16bit の転送に 用いる筈でした。 しかし、当時策定中の SCSI3 での Wide コネクタの規定を先行して商 品に採用するメーカが出はじめ、SCSI2 でも普及してしまいました。 これが現在の 68pin の Wide cable ですよね。 という訳で、現在の SCSI の状況を把握するには、規格を正しく読むだ けでは足りないという、非常にやっかいな状態になっています。 なので、詳細はもっと詳しい方にお願いしたいです。
Subject: Re: [PC 05138] Re: SCSI =?ISO-2022-JP?B?GyRCSlg+aDxBTGQbKEI=?= Date: Tue, 17 Dec 1996 20:49:14 +0900 > 私の”SCSI接続のHDDの転送速度”に非常に不満があります > そこで少しでも SCSI のことが知りたいので > 私に理解できるかどうか分かりませんが 教えていただきませんか はい、わかりました。 > 4台のマシンに3枚のボードと3代のHDDをそれぞれ組み合わせて > HDBENCHにて測定しましたが > リードで平均 3.8MB/S程度 > ライトでは早い物で 5MB/S 遅い物だと 1.5MB/Sと言う結果です まず、この「マシン、ボード、HDD」が何か判らないと、この結果が速いの か遅いのか判断する事は出来ません。 更に、HDBENCH がどの様な Access を行なってその数値を出したのかも非常に 重要です。(私は HDBENCH を知りません。) しかし、それらの情報を出してもらっても、個別の製品情報に詳しい訳ではな いので、私はあまり役に立たないでしょう。 「少しでもSCSIのことが知りたい」そうなので、以下、特定の製品によら ない、一般的な話をします。 > SCSI−2が 理論値と言えども10MB/Sなのだから > リード ライト共7MB/S位出ても言いように思っています > 間違いでしょうか そう簡単には判断出来ないです。:-) まず、SCSI-2 の転送速度は、非同期で 2〜3MB/s、同期で 5MB/s が最高です。 転送速度が 10MB/s 出るのは、SCSI-2 の拡張機能である、高速同期転送をサ ポートしている場合のみです。これは通称 FAST SCSI などと呼ばれます。 最近の物で SCSI-2 で FAST-SCSI でないものは無いので、問題ないですが。 次に、この 10MB/s という値は同期転送中の最高速度です。 SCSI bus 上でデータ転送する為には、最初にアービトレーション、セレクショ ンといった手順で device を選択する必要があります。 これらのフェーズでは SCSI-1 との相互接続性を確保する為に、SCSI-1 の device でも大丈夫な速度になっています。 仮に高速同期転送が可能な device ばかりでも、これらの時間は必要で、決っ して 10MB/s が実際に出る事は無いでしょう。 # コマンドの転送時間もかかりますし。 そして、その Drive の性能の問題があります。 これは、Device から SCSI bus への転送能力と、Drive からの読み出し能力 の二つに分けて考える必要があります。 普通、SCSI DISK にはキャッシュが載っていますが、これがヒットした場合、 その DISK の Controler の SCSI bus 最大転送速度で出力出来ます。 しかし高速同期転送の 10MB/s という値は「最高制限速度」で、これ以下の場 合もありえますし、それでも 5MB/s を越えれば FAST SCSI 対応なのです。 また、Drive からキャッシュへの読み出し速度の問題もあります。 DISK の回転速度と線記録密度によって決まりますが、80Mbps もの速度を出せ る Disk は非常に高価です。 MR ヘッドやビタビ復号などの技術が用いられはじめていますが、まだまだ高 価です。 更に、その Drive は、高速の連続転送に耐えられないかもしれません。 強烈な価格競争のため、極限までコストダウンされた Disk は、それ程耐久性 を確保していないものが殆んどです。最悪の場合は Disk の中の Controler が自己診断の結果、勝手に「休憩」をしてしまいます。 なので、VOD(Video On Demand) server などの為に AV Grade と呼ばれる連続 転送能力を保証された物が、やや高価になりますが存在します。 これまでは全て seek が発生しない、連続転送能力だけの問題です。 実際には seek が存在しない状況などありません。 seek time 5ms という高速 DISK でも、高速転送の 10MHz の clock に換算す ると 50000 clock もの時間になります。これで 512B のセクタ一つしか読ま なければ、転送の百倍も待つ事になってしまいます。 更に、FileSystem のオーバーヘッドも大きいです。 FAT の場合、ディレクトリテーブルとブロックテーブルを読まないとファイル がどのセクタに対応しているか判りません。なので、ファイルの最初の 1Byte を読み出すより先に、沢山のデータを読む必要があるのです。 ファイルの読み取りなどの Benchmark では、これらも加わる事になります。 以上、だらだらと書いてきましたが、これでも SCSI bus から DISK までにつ いて *だけ* です。 今度は逆に、SCSI bus から Memory までについて書いてみます。 # 前の mail では Busmaster/PIO の問題でしたので、こっちが本題ですね。 まず、SCSI IF の Controler の SCSI bus の転送能力の問題があります。 これは今時 FAST SCSI に対応していないものは無いので問題無いでしょう。 次に SCSI Controler の処理能力の問題。 アービトレーションや SCSI Command の解釈などを行ないます。 最近の PCI 対応の物は RISC CPU を内蔵している物が多いです。 AHA-1542 は Z80 を積んでます。その互換品である Buslogic の製品は 80186 を使用しており、AHA-1542 に対して高速な処理が売りでした。 大昔は単なる IO port を Software で SCSI protcol を実行していました。 今でも EasySCSI がありますね。 そして、Controler から Memory への転送能力の問題。 これは大きくわけて、転送方式と拡張バスの二つが関係します。 まず、転送方式は Busmaster と PIO の二つがあります。 Busmaster の場合、bus 上には書き込みサイクルだけが連続します。 PIO の場合、CPU が IO port から読み込んでから Memory に書き込みます。 なので、命令読み込み、IO port から読み込み、Memory に書き込み、で 1 サ イクルになり、かなり遅くなります。 拡張バスは、ISA, PCI の二つに分けられます。 それぞれ最大転送速度は 8MB/s, 133MB/s になります。 ISA の場合、Busmaster/PIO の違いは非常に大きくなります。 これは bus が遅いためで、ただでさえ 10MB/s 以下の帯域を無駄に使ってし まう事になります。 しかし最近の 486 や Pentium の機械では Memory bus が ISA bus とは独立で 非常に高速です。なので、命令読み込みや Memory 書き込みには時間がかかり ません。 昔の 286 8MHz な機械では、ISA bus と Memory bus が同じ速度でしたので、 この速度低下は非常に大きなものでした。 これが PCI になると、殆ど差は無くなってしまいます。 多少のオーバーヘッドがあっても 10MB/s には十分なのです。 差は前に書いた様に、CPU の負荷くらいです。 最近は Multitask OS が増えて来たので、それはそれで重要なのですが。 ...という訳で、非常に多くの事が性能に影響しています。 本当は Benchmark の結果を判断して性能評価をするには、その Benchmark を 作成するのと同等(以上?)の知識と能力が必要なのです。 で、Benchmark を作成するには、ここに書いた事はもちろん、それよりも幅広 く、深い知識が必要になるのです。 そうでなければ、意味のある値を測定する事は出来ないと思います。 # なので、DOS/V Magazine の Benchmark は信用してません。:-P # 未だに3DBENCH を平気で使うんだもんなぁ...
基本的に、趣味でコンピュータ触ってるだけのシロウトのタワゴトです。
間違い等の御指摘やアドバイス等ありましたら、
dmizuno@geocities.co.jpか、
dai@synnet.or.jpまで
mail して頂けると有難いです。
このホームページのホストは
です。無料ホームページ
をどうぞ