難しいものは pio モードで動作します。 PIO モードまたはハードドライブの速度が低下し始めたという事実に対処する方法。 DMA モードを有効にする

17.08.2023

セカンダリマスター

可能な 4 つのそれぞれへのオプション メニューの割り当て ハードドライブ(E) 最適な PIO モード (プログラマブル入力/出力) の IDE インターフェイス。 可能な値: 「自動」(デフォルト)、「モード 0」、「モード 1」、「モード 2」、「モード 3」、「モード 4」。 モード 0 ~ 2 は通常の IDE ドライブ (ATA 標準)、3 と 4 は EIDE (ATA-2)、モード 5 は ATA-3 を指します。 明らかに、 自動モードシステムは各ディスクに最適なデータ転送速度モードを選択します。 しかし、私たちはそれを覚えておかなければなりません 自動インストール PIOモードは操作の自動検出の可能性に応じて実行されます ハードドライブデバイスから受信する情報の量。 ユーザーが PIO モードの自動検出の正確さに疑問を抱いている場合は、次のドキュメントに従ってください。 ハードドライブユーザーは任意のドライブの PIO モードを変更できます。 「自動」モードの BIOS も EIDE ディスクの PIO モードを誤って識別する可能性があり、後者は認識されません。 モード 3 および 4 を使用するには、システムで EIDE ディスクを使用する必要があります。

同様の (4 つ!) オプションも「」と呼ばれることがあります。 IDE主要なマスターPIO"等。

オプション " 高速プログラムされた I/O モード" には、次の値があります: "無効"、"自動検出"、"PIO0"、... "PIO4"。同じ名前のオプションは、予期せず、値 "無効" と "自動検出" (デフォルト) を提案しました。 1 つ目は、インストール速度特性が最適ではないことにつながり、「自動検出」により可能な最大速度が設定されます。

このオプションは「」と呼ばれることもあります。 モード PIO 転送データ" または " 転送モード最後のオプションでは、次の値のセットが提供されました:「Auto」、「Default」(「Fast PIO 1」に相当)、「Fast PIO 1」、「Fast PIO 2」、「Fast PIO 3」、「Fast PIO」 4"、" FPIO 3 / DMA 1"、"FPIO 4 / DMA 2"。毎回、4 台のハード ドライブ、または古いシステムの場合は 2 台のハード ドライブのパラメータについて話していることは明らかです。この場合、オプションは次のとおりです。と呼ばれる IDEマスターPIOモード" ("マスタードライブPIOモード") そして " IDE スレーブ PIO モード" ("スレーブドライブPIOモード").

PIO (プログラマブル入出力) は中央プロセッサによって実装され、データを特定の I/O アドレスに転送することによって機能します (「ポート」サブセクションを参照)。 PIO モードは、ドライブとコントローラ間でデータを転送できる速度を決定します。 これらを使用する場合、システムの中央プロセッサのレジスタが使用されます。 しかしそれだけではありません! PIO または DMA モードは、送信される情報のパケットのサイズ、パケットのエンコード方法、送信の速度とシーケンス、および交換サイクルの全時間特性を決定します。 モードに応じて異なるサイクルタイムが設定されるため、伝送速度は非常に広い制限内で変化する可能性があります(表を参照)。

「ドライブの識別」コマンドを受信すると、ドライブはサポートされている PIO および DMA モード、その他のパラメータに関する情報を返します。 これらのパラメータは次を使用して決定することもできます。 特別なユーティリティ。 送信モードは、レジスタの 1 つである SC (ATA デバイス セクタ カウンター レジスタ) の値によって設定されます。 交換モードは、このレジスタの動作モードの 1 つを通じて制御されます。

ATA-2 モード (PIO 3 および PIO 4) はハードウェア フロー制御を使用します。 具体的には、拡張 IDE には、ドライブがバス帯域幅の 100% を利用するバースト転送モードを有効にする「IORDY フロー制御」と呼ばれる操作が含まれています。 フロー制御モードでは、主導権がデバイス (ディスク) に転送され、ハード ドライブの機能に応じてコントローラーの帯域幅を設定することで、非効率な「ブラインド」PIO モードを取り除くことができます。 これは、帯域幅全体が利用可能な場合、ハード ドライブがホスト アダプタとのデータ交換を管理することを意味します。

これはどのような信号ですか? 「IORDY」(入力/出力準備完了) - コントローラーとの交換サイクルの完了を確認する EIDE ハードドライブからの信号。 別名:「CHRDY」、「IOCHDRY」。 「IORDY」を使用すると、高速ハードドライブがデータを送受信する時間がない場合に、コントローラとの交換サイクルを遅らせることができます。 これにより、交換サイクルの標準期間を最小限に抑えて速度を最大化し、必要に応じて「IORDY」を使用して個々のサイクルを延長することができます。 これを行うには、信号がハード ドライブとコントローラーの両方でサポートされている必要があります。 ディスク側のフロー制御は、コントローラーが「機能の設定」コマンドを使用して有効にすることで、この交換がディスクとコントローラーの両方でサポートされるようになります。 「IORDY」をサポートしていないコントローラーでは、高速 PIO モードを使用するとデータが失われる可能性があります。 この場合、低速モードを使用する必要があります。 一部の情報源ではモード 5 について言及していますが、これは普及しておらず、標準ではありません。

システム内のデバイスごとに交換モードを個別にプログラムすることが不可能な場合、およびシステム内で最適に動作するデバイスを接続する場合 さまざまなモード、システムは最小モードの速度で交換するように設定されます。 したがって、標準では、ハード ドライブと CD-ROM を同じチャネルに接続しないことが推奨されています。

プログラマブル I/O モードは、シングルタスク環境でのみ十分に効果的です。 マルチタスクのオペレーティング システムでは、DMA モードの方が適しています。 高速マルチ DMA 交換モードはオペレーティング システム ドライバーによって実装されることに注意してください。 ドライバーのソフトウェア構成機能により、DMA モードを柔軟に管理できます。

ハード ドライブと PC メモリ間でデータを転送するには、次の 2 つの主なモードが使用されます。

    プログラムされた入出力 (PIO) モード。

    ダイレクト メモリ アクセス (DMA) モード。

PIOモード

PIO モードでは、ハードドライブからの各バイトの情報がまず中央プロセッサによって読み取られ、その後 RAM に書き込まれます。 読み取りサイクルの期間とディスク アクセスごとに転送されるセクター数に応じて、モード PIO (PIO モード 0)、PIO1、PIO2、PIOЗ、PI04、PI05 が区別されます。

dmaモード

PIO モードは、コンピュータ プロセッサが IDE または EIDE ハード ドライブのバッファ メモリにデータを読み書きし、その後このデータが RAM に転送されるときに、シングルタスク オペレーティング システムで使用されます。 マルチタスク中 オペレーティングシステムに直接アクセスするモードを使用することをお勧めします。 ラム(ダイレクト メモリ アクセス、DMA)。 このモードでのデータの入出力は、CPU の関与なしに PC RAM に対して実行されます。 このプロセスは、ドライブ コントローラーの制御下で行われます。 ハードドライブこれにより、データ転送速度が多少低下しますが、プロセッサ時間が節約されます。 DMA モードを実装するには、RYU とは異なり、特別なコントローラーとドライバーの両方が必要です。

DMA モードは、システム バスの 1 サイクルの動作中に転送されるワード数に応じて、シングル ワード (Singleword) とマルチワード (Multiword) に分けられます。

シリアルATA(サタ)

パラレル ATA インターフェイスを介したデータ転送速度のさらなる増加により、技術的な問題が発生しました。 さらに、PC メーカーは、ケース内の空気循環を妨げ、長さが 46 cm に制限される幅広の 40 芯 (または 80 芯) ケーブルに満足していませんでした。

そのため、1999 年にシリアル ATA ワーキング グループが設立されました。その目標は、シリアル ATA インターフェイスであるシリアル ATA (SATA) を作成することでした。 このインターフェイスは 2001 年に導入され、150 MB/秒のデータ転送速度を実証しました。

また、複数の機器(HDD、 CD-ROMドライブ、DVD-ROM など)「スター」トポロジではなく(各デバイスをマスターまたはスレーブとして識別する必要がある場合)、各デバイスがホスト アダプタに直接接続される場合はポイントツーポイント トポロジが使用されます。 (SCSI デバイスなど)。

SCSl (Small Computer System Interface) は、IDE よりも多用途で効率的なインターフェイスです。 ただし、ハードウェア実装は IDE インターフェイス実装よりも大幅に高価です。 SCSI インターフェイスには、ビデオを操作する場合や、マルチタスク操作環境で CD-ROM ドライブを使用する場合、またはネットワーク ストレージ デバイスとして使用する場合に明らかな利点があります。

SCSI デバイスと I/O バス (ISA、PCI、VLB など) 間の通信は、ホスト アダプタを使用して外部バスを通じて実行されます。 SCSI バスに接続されたデバイスは、内蔵の SCSI コントローラを介して直接通信しません。

長期的な安定状態は、遅かれ早かれ、予測不可能で奇妙な何かによって破壊されるため、その瞬間が来ています。 数日前、ある物理ディスクから別の物理ディスクにファイルをコピーしているときに、速度が致命的に低いことに突然気づきました。予想される 50 ~ 90 Mb/s (断片化を考慮して調整) ではなく、4 ~ 6 Mb/s でした。 CPU 負荷を確認します。1 つのコアが割り込みの処理で完全にビジー状態であり、すべてがクリアです。ディスクは PIO モードに切り替わっています。

初期設定: ASUS P5Q、1 Gb SATA ディスク x 4、1.5 Gb SATA ディスク x 2、RAID なし、Windows XP SP3。 他のディスクと同様に、このディスクは UDMA モードで動作し、インストール後にテストしました。 デバイスマネージャー –> IDE コントローラー –> チャネルで「現在の転送モード」を確認します。 この図では、両方のデバイスが UDMA モードで動作しています。私の場合、2 番目のデバイスは PIO モードで動作していましたが、この図は保存しませんでした。 誰がどのチャネルに参加しているかを理解するには、デバイス マネージャー ビューを [表示] -> [接続別デバイス] に切り替えます。

それでも SATAドライブ、コントローラの デバイスマネージャ-ATA。 実際のところ、BIOS では SATA コントローラはデフォルトで ATA コントローラのふりをするように構成されており、その場合は新しい AHCI ドライバを追加する必要はありません。 AHCI モードに簡単に切り替えることができます。データの論理構成には影響せず、適切なドライバーのみが必要です。 で AHCIモード NCQ サポート (HDD コマンドの並べ替え) が表示され、全体的なパフォーマンスがわずかに向上しますが、ほんのわずかであり、ホット スワップのサポートも追加されています。

バージョン 考えられる理由:

1) 電車のあるもの。
2) ドライバーに関する問題、障害、または競合。
3) HDDに関するもの。

2 番目のシステムとして Windows 7 があり、それを起動して UDMA モードでディスクの完全なパフォーマンスを観察しました。これは、ハードウェアが正常であることを意味します。 イベント ログを見ても、ディスクの問題に関するメッセージはなく、SMART 診断を見ても、すべて問題なく、デバイスの競合もなく、すべて良好です。 買います 最新のドライバー ASUSと。 書き留めています 古い番号 Intel ICH10R ドライバーのバージョンが異なる場合は、新しいドライバーをインストールしてください。 疑わしいほどすぐにインストールされましたが、結局更新されませんでした。 手動で INFファイル ICH10R ドライバーを更新するとインストールされますが、問題は残ります。 Intel にアクセスし、最新バージョンをダウンロードしてインストールしても、再度何もインストールされません。 デバイスにドライバーがまったくない場合にのみドライバーが更新されることがわかりました。強制的にドライバーを更新するには、秘密キー「-overlall」を使用する必要があります。試してみましたが、更新されましたが、問題は解決しません。 ケーブルを交換したり、ケーブルを取り外したり、ディスクを接続したりしても効果はありません。 小計: ハードウェアは動作しています。 新しいソフトウェア役に立ちません。

で見つけました マイクロソフトは面白い記事: 「複数の CRC エラーまたはタイムアウトの後、IDE ATA および ATAPI ドライブは PIO モードを使用します。」 彼らは、UDMA 経由で送信障害が発生した場合、システムはモードを順次 PIO モードに下げて (または即座に)、この状態をフリーズすると書いています。 取り戻すには、デバイス マネージャーからコントローラーを削除することをお勧めします。そうすれば、コントローラーは灰の中から生まれ変わります。 私はそれには行かなかったので... 私は彼が生まれ変わらないのではないかと心配し(このことについてどこかに書いていました)、彼はそこや他の場所で説明されている 2 番目の道を選びました。

解決。レジストリ ブランチ「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\(4D36E96A-E325-11CE-B FC1-08002BE10318)」を開きます。ブランチ 0000、0001 などが含まれています。 これらはデバイス マネージャーのデバイスに対応します。 私たちはチャネルだけに興味があるので、DriverDesc の名前を調べます。 この場合「プライマリ IDE チャネル」。

MasterDeviceTimingModeAllowed と SlaveDeviceTimingModeAllowed に注意してください。これらは許容可能なモードのマスクを設定します。0xffffffff の場合はすべてが許可され、0x1f の場合は PIO モードのみが許可されます。 スレーブに問題があります。 現在のモード自体は MasterDeviceTimingMode と SlaveDeviceTimingMode に保存されており、それらは異なります (数値の意味はインターネットで見つけることができます)。 MS は、追加キー ResetErrorCountersOnSuccess (DWORD) = 1 を設定して再起動することを推奨しています。 これを実行しましたが、何も起こりませんでした。目的のモード UserSlaveDeviceTimingModeAllowed も 0x1f にリセットされただけでした。 デバイスマネージャーに戻しましたが、ここでも手動で0xffffffffに設定できると思います。 次に、SlaveDeviceTimingModeAllowed = 0xffffffff を設定し、再起動すると、すべてがうまくいきました。 したがって、私がしなければならなかったのは次のことだけだったと思います(スレーブの問題)。

UserSlaveDeviceTimingModeAllowed = 0xffffffff、SlaveDeviceTimingModeAllowed = 0xffffffff、ResetErrorCountersOnSuccess = 1 にして再起動します。

次の図は、再起動後のレジストリの最終状態を示しています。 モードは同じになり、マスクは保存され、デバイス マネージャーには投稿の冒頭のような図が表示されます。

さて、その理由について。 MS の記事から続くように、ドライバーを修正した理由の 1 つは、HDD の起動の待ち時間が不十分であり (Win2000 では 4 秒だったのを 10 秒にしました)、これがディスクの到着時に問題でした。眠れなくなった。 私は、2 時間操作が行われなかった場合にディスクの電源をオフにする設定を常に使用していましたが、これにより、一部のアプリケーションが一度に複数のパーティションにアクセスしようとしたときに、ディスクがランダムに起動することがありました。 おそらく何らかのシナリオでタイムアウトを超え、UDMA が無効になる障害が記録されたのではないかと思います。 今は、ディスクの電源を切るのはやめて、そのまま動作させます。また、頻繁に電源を入れたり切ったりすると、良いことよりも害が生じる可能性があります。

ブログ読者の皆様、こんにちは。 この記事では、システムのパフォーマンスを復元する方法について説明します。 多くの場合、ユーザーはコンピューターが非常に遅いという問題を抱えています。特に、 録音するときそしてで 読むディスク、または操作中またはロード中のシステムの不当な「ブレーキ」です。 システムがフリーズする理由を読む
これには非常に多くの理由が考えられますが、今日はかなり一般的な理由を検討することを提案します。これは誤った動作モードです。 CD/DVD - ROMまたは ハードドライブ、つまり、について話しましょう PIO と DMA.ハードドライブのエラーをチェックして修正する方法をお読みください。

PIOとDMAの本質と違いは何ですか.

PIO と DMA- これらは、どのドライブでも一般的な、ハード ドライブの 2 つの動作モードです。
PIO (プログラマブル入出力)- すでに古いモードです。機能するには、それが必要です
従事する CPU、大幅なパフォーマンスの低下につながります。
DMA (ダイレクト メモリ アクセス)- プロセッサーをバイパスする最新の方法
控訴 直接これにより、RAM への書き込みが大幅に可能になります。 生産性の向上煩わしい「ブレーキ」を取り除きます。
さまざまなバリエーションの DMA モードは、手術室で長い間使用されてきました。 Windows システムただし、7、8、そして 10 の場合も Windows XPでは、という状況がよくあります。 DMA は自動的に PIO に切り替わります従来の方法では戻すことができなくなります。 この状況の原因は何でしょうか?
Windows XPに実装機構 エラー制御、ハードディスクまたは他のドライブからの読み取り時にエラーが頻繁に発生する場合、システムはエラーの割合が低い低速モードに自動的に切り替わります。 しかし、 Windows XP正常に動作しているデバイスをこのモードにすることができます。
エラーを修正する方法 Windowsの読み取り

そこで、システムの速度が低下しないように、すべてのドライブの動作モードを確認してみましょう。

1 。 コンソールを起動する 「コンピュータ管理」– を右クリックします 「私のコンピューター」


ドロップダウン メニューで項目を選択します "デバイスマネージャ"、またはを通じて
コントロールパネル。または スタート - ファイル名を指定して実行 - devmgmt.msc

2. 「」を選択してください デバイスマネージャ"、選択します IDE ATA/ATAPI コントローラー,


コントローラーを備えたいくつかのラインが開きます - 私たちはそれに興味があります :
プライマリとセカンダリチャンネル IDE→ 一つ一つ行きます プロパティこれらのチャンネル(チャンネルを右クリックし、「」行) プロパティ")、ブックマークへ" 追加オプション」,
ここには2つのグループがあります 「デバイス0」と「デバイス1」、それぞれに線があります
「転送モード」– 選択する必要があります 「利用可能な場合は DMA"、その後の行 「現在の送信モード」、次のようなものがあるはずです 「ウルトラ DMA モード: 4、


ここで「PIOモード」を設定すると、 それならこれは私たちのものですチャンスです、そして私たちはそうします それを修正してください.
どこでもならこのモードにはそれだけの価値がある ウルトラDMA、その後はすべて問題なく、これ以上のアクションを続ける必要はありません。
3. まず、各行を手動で修正してみましょう 「転送モード」を「DMA(利用可能な場合)」に設定、 クリック "わかりました"そしてコンピュータを再起動します。 再度電源を入れてから
チャネルの動作モードを調べます。DMA があらゆる場所にインストールされていれば、すべてが正常です。 PIO が残っている場合、 さらに続けます。
4. もう一度探す プライマリおよびセカンダリ IDE チャネルそれらを削除します(各チャンネルを右クリックし、リストから選択します) "消去")。 心配しないでください。すべてうまくいきます。
コンピュータを再度再起動します – Windows XP はコントローラを検出します高速動作モードに切り替えます。 つまりDMA内で。 結果を確認してください。どこにでもモードがあるはずです。 DMA。
5. 上記のすべてを試しても問題が解決せず、再び「 PIOモード」、それが必要になります ドライバーを再配置するのために マザーボード– 過負荷
そして結果を再度確認してください。
6. さて、最後の点は、結局のところ政権が苦しんでいる場合です。 PIO消えていない場合は、編集する必要があります レジストリ注意したいのは、あらゆる操作を実行することです
レジストリは非常に慎重に、誤った操作を行うとシステムが完全に動作しなくなる可能性があります。 事前にレジストリのコピーを作成しておくことをお勧めします。
レジストリを使用して Windows XP を構成する方法を読む

まず、エラー制御システムを無効にしてみてください。
これを行うには、レジストリ ブランチで次のようにします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\,
キーを作成する エラーコントロールその値を次のように設定します 0.


その後、再起動して手順に従います №4.


手動でモードを設定できます DMA.
ここにはいくつかのフォルダーがあります - 0000, 0001, 0002.
0000 – コントローラー自体を担当します。
0001 – セカンダリ IDE チャネルを担当します。
0002 – プライマリ IDE チャネルを担当します。
必要なチャンネルのフォルダーを開きます。 含まれています
いくつかのキーがある場合は、最初に次を選択します。
マステデバイスタイミングモード許可
スレーブデバイスタイミングモード許可
値を次と等しく設定します 0хffffffff。
この後、次のキーの値を設定します。
マスターデバイスタイミングモード
スレーブデバイスタイミングモード
次のデータによると、によって異なります
サポートされている UDMA モード:
UDMA モード 2 – 0x2010
UDMA モード 4 – 0×8010
UDMA モード 5 – 0×10010
UDMA モード 6 – 0xffff

その後、再起動して結果を確認します。すべて正常に動作するはずです。

Windows 10 のパフォーマンスを高速化して復元する方法については、こちらをお読みください。
コンピュータの情報転送速度はどれくらいですか、読んでください
この記事がモードを正しく設定するのに役立つことを願っています PIO と DMAシステム全体のパフォーマンスが向上します。