Activați DMA. Cum să restabiliți performanța sistemului, modurile PIO și DMA


O stare de stabilitate pe termen lung este mai devreme sau mai târziu perturbată de ceva imprevizibil și ciudat, așa că momentul a sosit. Acum câteva zile, când copiam un fișier dintr-unul disc fizic pe de altă parte, am observat brusc că viteza era catastrofal de scăzută - 4-6 Mb/s în loc de 50-90 Mb/s așteptați (ajustat pentru fragmentare). Mă uit la sarcina procesorului– un nucleu este complet ocupat procesând întreruperi, totul este clar – discul a trecut în modul PIO.

Configurație inițială: ASUS P5Q, 4 discuri SATA de 1 Gb, 2 discuri SATA de 1,5 Gb, fără RAID, Windows XP SP3. Discul a funcționat în modul UDMA, ca toate celelalte, l-am testat după instalare. Device Manager –> controlere IDE –> canal și uită-te la „modul de transfer curent”. În imagine, ambele dispozitive funcționează în modul UDMA în cazul meu, al doilea dispozitiv a funcționat în modul PIO, dar nu am salvat această imagine; Pentru a înțelege cine este pe ce canal, comutați vizualizarea Manager dispozitive la Vizualizare –> Dispozitive prin conexiune.

Deşi Unități SATA, controlori în Manager de dispozitiv- ATA. Chestia este că în BIOS Controlere SATAîn mod implicit, acestea sunt configurate să pretindă a fi controlere ATA, caz în care nu sunt necesare drivere AHCI noi suplimentare. Puteți trece fără durere la modul AHCI, nu afectează organizarea logică a datelor și necesită doar driverele adecvate. ÎN Modul AHCI Apare suportul NCQ (reordonarea comenzilor HDD) și performanța generală crește puțin, dar doar puțin, și se adaugă și suport schimb la cald.

Versiuni motive posibile:

1) Ceva cu un tren.
2) Ceva cu driverele, eșec sau conflict.
3) Ceva cu HDD-ul.

Există un al doilea sistem - Windows 7, pornesc în el și observ performanța completă a discurilor în modurile UDMA, ceea ce înseamnă că hardware-ul pare a fi normal. Mă uit la jurnalul de evenimente, nu găsesc mesaje în el despre o problemă cu discurile, mă uit Diagnosticare SMART– totul este ok, nu există conflicte de dispozitive, toate acestea sunt bune. O să-l iau ultimele drivere cu ASUS. O notez număr vechi versiuni Drivere Intel ICH10R, instalez unul nou. Instalat suspect de repede, până la urmă nu a fost actualizat. Manual prin fișiere INF Actualizez driverele ICH10R, se instalează, dar problema rămâne. Mă duc la Intel, descarc cea mai recentă versiune, o instalez, nu se instalează nimic din nou. Am aflat că driverele lor sunt actualizate doar dacă dispozitivul nu are deloc driver, pentru a-l forța trebuie să folosiți cheia secretă „–overlall”, încerc, se actualizează, dar nu rezolvă problema. Schimb cablul, îl scot, conectez discul - nu ajută. Subtotal- fabricile de fier, software nou nu ajută.

Il gasesc in Microsoft articol interesant: „După mai multe erori CRC sau expirări, unitățile IDE ATA și ATAPI folosesc modul PIO.” Ei scriu că, dacă au existat erori de transmisie prin UDMA, sistemul coboară secvenţial modurile până la modul PIO (sau imediat) şi îngheaţă această stare! Pentru a-l recupera, ei sugerează eliminarea controlerului din Device Manager și va renaște din cenușă. Nu m-am dus, pentru că... Mi-a fost teamă că s-ar putea să nu renască (au scris despre asta undeva), așa că a luat-o pe a doua cale descrisă acolo și în alte locuri.

Soluţie. Deschideți ramura de registry „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\(4D36E96A-E325-11CE-B FC1-08002BE10318)”, aceasta va conține ramurile 0000, 0001 etc. Acestea corespund dispozitivelor din Device Manager. Suntem interesați doar de canale, ne uităm la numele în DriverDesc, în în acest caz,„Canal IDE primar”.

Acordați atenție MasterDeviceTimingModeAllowed și SlaveDeviceTimingModeAllowed - au stabilit o mască de moduri acceptabile, dacă 0xffffffff, atunci totul este permis, iar dacă 0x1f, atunci numai modul PIO. Am o problemă cu Slave. Modurile curente în sine sunt stocate în MasterDeviceTimingMode și SlaveDeviceTimingMode, sunt diferite (puteți găsi semnificația numerelor pe Internet). MS sugerează să faceți următoarele - set cheie suplimentară ResetErrorCountersOnSuccess (DWORD) = 1 și reîncărcați. Am făcut asta, dar nu a făcut nimic, a dat doar că și modul dorit UserSlaveDeviceTimingModeAllowed a fost resetat la 0x1f. L-am returnat la Device Manager, dar cred că îl puteți seta manual și aici la 0xffffffff. Apoi, am setat SlaveDeviceTimingModeAllowed = 0xffffffff, repornit și voila!, totul a funcționat. Deci, cred că tot ce trebuia să fac a fost următorul lucru (problema pe Slave):

UserSlaveDeviceTimingModeAllowed = 0xffffffff, SlaveDeviceTimingModeAllowed = 0xffffffff, ResetErrorCountersOnSuccess = 1 și reporniți.

Următoarea imagine arată starea finală a registrului după o repornire. Modurile sunt acum aceleași, măștile s-au păstrat și în Device Manager vedem poza ca la începutul postării.

Acum despre motiv. După cum reiese din articolul MS, unul dintre motivele pentru remedierea driverului lor a fost că timpul de așteptare pentru pornirea HDD-ului a fost insuficient (în Win2000 era de 4 secunde, au făcut 10 secunde) și aceasta a fost o problemă când au venit discurile. din somn. Am folosit constant setarea pentru a opri discurile după inactivitate după 2 ore, ceea ce ducea uneori la trezirea lor aleatorie când unele aplicații doreau să acceseze mai multe partiții deodată. Cred că poate într-un anumit scenariu timeout-ul a fost depășit și a fost înregistrat un eșec care a dus la dezactivarea UDMA. Acum am refuzat să deconectez discurile, să le las să funcționeze, în plus pornire frecventă iar opririle pot face mai mult rău decât bine.

Pentru a transfera date între hard disk și memoria computerului, sunt utilizate două moduri principale:

    Modul Intrare/Ieșire Programată (PIO);

    Mod de acces direct la memorie (DMA).

modul pio

În modul PIO, fiecare octet de informații cu hard disk mai întâi citit de procesorul central și abia apoi scris pe RAM. În funcție de durata ciclului de citire și de numărul de sectoare transferate pe acces la disc, există moduri PIO (PIO Mode 0), PIO1, PIO2, PIOЗ, PI04, PI05.

modul dma

Modurile PIO sunt utilizate în sistemele de operare cu o singură sarcină atunci când procesorul computerului citește sau scrie date în care memorie tampon hard disk-uri IDE sau EIDE, iar apoi aceste date sunt transferate pe RAM. În multitasking sisteme de operare se recomandă utilizarea modurilor de acces direct la RAM(Acces direct la memorie, DMA). Intrarea/ieșirea datelor în acest mod se realizează în RAM-ul PC-ului fără participarea procesorului. Acest proces are loc sub controlul controlerului de unitate pornit hard disk-uriîn pauzele dintre apelurile CPU către RAM, ceea ce reduce oarecum viteza de transfer de date, dar economisește timp procesorului. Pentru a implementa modurile DMA, spre deosebire de RYU, sunt necesare atât controlere speciale, cât și drivere.

Modurile DMA sunt împărțite în un singur cuvânt (Singleword) și mai multe cuvinte (Multiword), în funcție de numărul de cuvinte transferate în timpul unui ciclu de lucru cu magistrala de sistem.

Serial ata (sata)

Creșterile ulterioare ale ratelor de transfer de date prin interfața paralelă ATA au cauzat dificultăți tehnice. În plus, producătorii de PC-uri nu au fost mulțumiți de cablul larg cu 40 de fire (sau 80 de fire), care împiedică circulația aerului în interiorul carcasei și este limitat la o lungime de 46 cm.

Prin urmare, în 1999, a fost creat Grupul de lucru Serial ATA, al cărui scop era acela de a crea un interfata ATA- Serial ATA (SATA). Interfața a fost introdusă în 2001 și a demonstrat o viteză de transfer de date de 150 MB/s.

În plus, pentru a conecta mai multe dispozitive (HDD, Unități CD-ROM, DVD-ROM, etc.) nu se va folosi o topologie „stea” (când fiecare dispozitiv trebuie identificat ca Master sau Slave), ci o topologie punct la punct, când fiecare dispozitiv va fi conectat direct la adaptorul gazdă. (cum ar fi dispozitivele SCSI).

SCSl (Small Computer System Interface) este o interfață mai versatilă și mai eficientă decât IDE. Cu toate acestea, implementarea sa hardware este semnificativ mai costisitoare decât implementarea interfeței IDE. Interfața SCSI are avantaje clare atunci când lucrați cu video, precum și atunci când utilizați o unitate CD-ROM într-un mediu de operare multitasking sau ca dispozitiv de stocare în rețea.

Comunicarea între dispozitivul SCSI și magistrala I/O (cum ar fi ISA, PCI, VLB) se realizează printr-o magistrală externă folosind un adaptor gazdă. Dispozitivele conectate la magistrala SCSI nu comunică între ele direct, ci prin controlere SCSI încorporate.

Salutare tuturor, astăzi vom vorbi despre DMA: exact tehnologia care vă ajută computerul să redă muzică pentru dvs., să afișați imagini pe ecran, să scrieți informații către hard disk, și, în același timp, pune o sarcină slabă pe procesorul central.

DMA, ce este? Ce vrei sa spui?

DMA, sau Direct Memory Access, este o tehnologie de acces direct la memorie, ocolind procesorul central. În epoca anilor 486 și a primelor Pentiums, magistrala ISA a domnit suprem, precum și metoda de schimb de date între dispozitive - PIO (Programmed Input/Output).

PIO este în mod inerent simplu: pentru a obține date de la un dispozitiv, driverul sistemului de operare (sau firmware-ul altui dispozitiv) a trebuit să citească aceste date din registrele dispozitivului. Să ne uităm la un exemplu:

  • 1500 de octeți de date au ajuns pe placa de rețea.
  • Placa de rețea inițiază o întrerupere pentru a informa procesorul că datele trebuie preluate de pe dispozitiv, altfel va avea loc o așa-numită depășire a memoriei tampon.
  • Sistemul de operare captează întreruperea de la controlerul de întrerupere și o trimite driverului pentru procesare.
  • Driverul citește datele din registrele plăcii de rețea într-o buclă, octet cu octet.
Ca rezultat, dacă citirea unui octet durează aproximativ 1 ms de timp procesor, atunci citirea a 1500 de octeți durează 1500 ms. Dar acesta este doar un pachet Ethernet, imaginează-ți câte pachete primește placa de rețea când citești habrahabr-ul tău preferat. Desigur, în realitate, citirea în modul PIO poate fi organizată în 2,4 octeți, dar pierderea de performanță va fi totuși catastrofală.

Când volumele de date pe care le operează procesorul a început să crească, a devenit clar că era necesar să se minimizeze participarea procesorului în lanțul de schimb de date, altfel lucrurile ar fi dificile. Și atunci tehnologia accesului direct la memorie a găsit o utilizare activă.

Apropo, DMA este folosit nu numai pentru a face schimb de date între un dispozitiv și RAM, ci și între dispozitivele din sistem, transferul DMA este posibil între două secțiuni ale RAM (deși această manevră nu este aplicabilă arhitecturii x86). De asemenea, în procesorul său Cell, IBM folosește DMA ca mecanism de comunicare principal între elementele de procesare sinergică (SPE) și elementele de procesare centrală (PPE). De asemenea, fiecare SPE și PPE poate face schimb de date prin DMA cu RAM. Această tehnică este de fapt mare avantaj Cell, deoarece elimină problemele de coerență a memoriei cache în timpul procesării datelor cu mai multe procesoare.

Și din nou teoria

Înainte de a intra în practică, aș dori să subliniez câteva aspecte importante programarea dispozitivelor PCI, PCI-E.

Am menționat pe scurt registrele dispozitivelor, dar cum le accesează CPU-ul? După cum mulți dintre voi știți, există o astfel de entitate în tehnologii informatice, cum ar fi porturile IO (porturi de intrare/ieșire). Acestea sunt concepute pentru a face schimb de informații între procesorul central și dispozitive periferice, iar accesul la acestea este posibil folosind instrucțiuni speciale de asamblare - în/out. BIOS (sau OpenFirmware pe sisteme bazate pe PPC) activat stadii incipiente initializare Dispozitive PCI, precum și altele (Super IO controller, PS/2 device controller, ACPI timer, etc.), atribuie propria gamă de porturi IO unui anumit controler, unde sunt mapate registrele dispozitivului.

De asemenea, registrele dispozitivului pot fi mapate la RAM (Registrele mapate în memorie), adică. la spațiul de adrese fizice. Această metodă are o serie de avantaje, și anume:

  • Viteza de acces memorie fizică mai mare decât la porturile IO.
  • Porturile IO pot mapa un maxim de 65535 octeți de registre, în timp ce dimensiunea RAM calculatoare moderne de multe ori mai mult.
  • Citirea registrelor dispozitivului din RAM este mai ușoară decât utilizarea porturilor IO :)
Datele despre ce gamă de porturi IO sau RAM este alocată dispozitivului sunt stocate în spațiul de configurare PCI, și anume în registrele BAR0, BAR1, BAR2, BAR4, BAR5.

Deci, există două metode pentru reciclarea DMA: DMA contiguu și DMA scatter/gather.

DMA contiguu

Această metodă este foarte simplă și a devenit aproape învechită, dar este încă folosită pentru programare controlere de sunet(de exemplu Envy24HT). Principiul său este următorul:
  • Este suficient alocat un buffer dimensiune mareîn RAM.
  • Adresa fizică (mai precis, adresa de pe magistrala secțiunii de memorie, deoarece adresa fizică și adresa magistralei sunt egale în arhitectura x86, dar nu egale în PPC) a acestui buffer este scrisă în registrul dispozitivului.
  • Când datele sosesc la dispozitiv, controlerul dispozitivului inițiază un transfer DMA.
  • Odată ce tamponul este complet plin, controlerul dispozitivului inițiază o întrerupere pentru raportare procesor central ca tamponul să fie transmis sistemului de operare.
  • Driverul sistemului de operare procesează întreruperea și transmite datele primite din buffer mai departe de-a lungul stivei de dispozitive ale sistemului de operare.
După cum puteți vedea, totul este destul de simplu și, de îndată ce magistrala ISA a dobândit suport DMA, această metodă a găsit o aplicare foarte largă. De exemplu, șoferii plăci de rețea avea două astfel de buffer-uri DMA: unul pentru primirea datelor (rx), celălalt pentru trimitere (tx).

Imprăștiați/adunați DMA

Cu viteza tot mai mare Adaptoare Ethernet, DMA contiguu și-a arătat inconsecvența. În principal din cauza faptului că erau necesare zone de memorie destul de mari, care uneori erau imposibil de alocat, deoarece sisteme moderne Fragmentarea memoriei fizice este destul de mare. Totul este vina mecanismului memorie virtuală, fără de care nu poți merge nicăieri zilele astea :)

Soluția sugerează de la sine: utilizați mai multe în loc de o secțiune mare de memorie, dar în diferite regiuni tocmai această amintire. Apare întrebarea, dar cum să-i spuneți controlerului dispozitivului cum să inițieze un transfer DMA și la ce adresă să scrie datele? Și apoi au găsit o soluție, să folosească descriptori pentru a descrie fiecare astfel de zonă din RAM.

Un descriptor tipic de buffer DMA conține următoarele câmpuri:

  1. Adresa secțiunii RAM (și anume adresa magistralei), care este destinată transferului DMA.
  2. Dimensiunea secțiunii descrise de RAM.
  3. Steaguri opționale și alte argumente specifice.
  4. Adresa următorului descriptor din memorie.
Structura descriptorilor este determinată de producătorul specific controlerului dispozitivului și poate conține orice alte câmpuri. Descriptorul, ca și bufferul DMA, este localizat în RAM.

Algoritmul DMA scatter/gather este următorul:

  • Driverul sistemului de operare alocă și inițializează descriptori de buffer DMA.
  • Driverul alocă tampon DMA (secțiuni RAM pentru transferul DMA) și scrie informatiile necesare despre ele în descriptori.
  • Dispozitivul, pe măsură ce este nevoie, umple tampoanele DMA și, după ce unul sau mai multe tampoane sunt umplute, inițiază o întrerupere.
  • Driverul sistemului de operare analizează toți descriptorii bufferului DMA, determină care dintre ei au fost completați de controlerul dispozitivului, transmite datele din buffer mai jos în stiva dispozitivului și marchează tamponul ca fiind gata pentru transferul DMA.
Ordinea în care controlerul dispozitivului umple tampoanele DMA este determinată de producător. Controlerul poate scrie în primul buffer DMA liber, sau pur și simplu scrie într-un rând (descriptorii bufferului DMA în acest caz formează o listă de inel conectată unic) în toate bufferele etc.

Stop...

Probabil asta e tot pentru ziua de azi, altfel vor fi prea multe informatii. În următorul articol vă voi arăta cum funcționează IOKit cu această magie stradală. Aștept cu nerăbdare feedback-ul și completările voastre;)

După cum știți, Windows 7 a primit îmbunătățiri mai semnificative în timpul de pornire și răspunsul sistemului în comparație cu predecesorul său Windows Vista . Au fost făcute modificări semnificative care au permis sistemului să nu consume tot memorie de sistem la deschidere cantitate mare Windows Explorer, optimizat servicii de sistemși procese.


În acest articol ne vom uita la:

  • optimizarea meniului de pornire
  • optimizare munci din greu disc în Windows 7
  • optimizarea vitezei de copiere și mutare a fișierelor în Windows 7
  • optimizarea lucrului cu Drivere Windows 7
  • optimizarea timpului pornire Windows 7
  • accelerați procesul de vizualizare a imaginilor în miniatură
  • finalizarea accelerației Operare Windows 7
Atenţie!
Vă rugăm să rețineți că unele dintre metodele discutate pentru a accelera munca Windows 7 se bazează pe dezactivarea oricărui fel de sarcini, simplificarea sau îmbunătățirea funcționalității sistemului pentru o utilizare mai convenabilă. Aceste. În esență, alegi între comoditate și performanță.

Modalități de optimizare a Windows 7

1. Accelerează meniul de pornire.

Definitie recent programe instalate, și, de asemenea, sistemul necesită ceva timp pentru a evidenția aceste programe instalate recent de fiecare dată când deschideți meniul de pornire. Puteți economisi acest timp.

Pentru a face acest lucru, trebuie să accesați setările meniului de pornire: în proprietăți „Bara de activități și meniul Start”(pentru activare, accesați panoul de control Windows 7: Start -> Panou de control). Accesați marcajul „Meniul Start”și faceți clic pe butonul "Ton".
Figura 1. Personalizarea meniului Start

Debifați „Evidențiați programele instalate recent”, apoi faceți clic "Aplica".
Figura 2. Dezactivați evidențierea programelor instalate recent
Pentru a reduce pauza când apare fereastra meniului Start, accesați editorul de registry (comandă "regedit"în dialog „Găsiți programe și fișiere”).
Figura 3. Lansarea Registry Editor
După lansarea Editorului Registrului ( regedit.exe) mergi la thread HKEY_CURRENT_USER -> Panoul de control-> Desktop(Fig. 4).

Figura 4. Selectarea ramurilor de registru necesare
Schimbați valoarea cheii MenuShowDelay Cu "400" pe "50". Pauza se va scurta semnificativ.

Figura 5. Modificarea pauzei la afișarea unei ferestre
2. Optimizarea performanței hard diskului în Windows 7

Această opțiune este familiară din zilele noastre Windows XP, dar dacă în XP a fost inclus inițial, apoi în Windows 7 optimizare hard disk-uri A fost considerat inutil și este dezactivat implicit. Acum ne vom uita la metoda de activare a acestei opțiuni.

Să mergem la Start -> Panou de control -> Manager dispozitive -> Dispozitive de disc-> (selectați unitatea de disc) -> Proprietăți -> Politică...și puneți o bifă lângă element „Dezactivați spălarea bufferului cache” Înregistrările Windows pentru acest dispozitiv".
Figura 6. Dezactivarea ștergerii bufferului în cache de intrare Windows
Acum în același "Manager de dispozitiv" deschide alt thread - „Controloare IDE ATA/ATAPI (controlere IDE ATA/ATAPI)”, după care în proprietățile tuturor canalelor ATA (ATA Canalul 0, ATA Canalul 1 etc.) în filă « Setări suplimentare(Setări avansate)" verificați dacă caseta de selectare este bifată „Activați DMA”.
Figura 7. Activarea modului DMA
Dacă caseta de selectare nu este bifată, bifați-o.

3. Accelerați copierea și mutarea fișierelor în Windows 7

Windows 7 am primit altul caracteristică interesantă- compresie diferenţială de la distanţă.
Pe de o parte, această opțiune calculează și transmite diferența dintre două obiecte, minimizând cantitatea de date transmise, dar, pe de altă parte, este nevoie de timp pentru calcul.

Puteți dezactiva această funcție. Pentru a face acest lucru, accesați Start -> Panou de control -> Programe și caracteristici -> Porniți-l și dezactivați-l Componentele Windows-> Compresie diferențială de la distanță (trebuie să debifați).

Figura 8. Dezactivarea compresiei diferențiale
4. Dezactivarea scanării semnătură digitalășoferii

Această acțiune poate crește ușor viteza sistemului (când instalați drivere noi). Pentru a dezactiva această opțiune în Windows 7 urmați acești pași:

Execută în "Început" gpedit.msc.
Figura 9. Lansarea panoului de administrare
Apoi mergeți pe următoarea cale:

Configurare utilizator -> Șabloane administrative -> Sistem -> Instalare driver -> Semnătură digitală a driverelor de dispozitiv. În această fereastră trebuie să selectați modul „Dezactivat”.

Figura 10. Dezactivarea verificării semnăturii digitale a driverului
5. Accelerează pornirea Windows 7

Putem câștiga încă câteva secunde, într-adevăr acest sfat se referă la acei utilizatori care lucrează la procesoare multi-core Cu Windows 7 ca sistem de operare.
Deci, urmați acești pași:

Intră MSCONFIGîn câmpul de căutare din meniu "Început"și apăsați tasta "Intra".

În fereastra care se deschide, accesați fila și faceți clic pe butonul « Opțiuni suplimentare(Opțiuni avansate)".

Figura 11. Opțiuni suplimentare de optimizare a sistemului Bifați caseta de lângă articol „Numărul de procesoare” iar în meniul derulant de sub acest articol, selectați numărul maxim de nuclee (2 sau 4).

Figura 12. Setarea numărului de procesoare pentru sistemele cu procesoare multi-threaded
Clic "BINE"și reporniți sistemul pentru a vedea o diferență destul de vizibilă în viteza de pornire Windows 7.

6. Accelerați vizualizarea miniaturilor (miniatură).

Puteți crește viteza de vizualizare a miniaturilor în Windows 7. Pentru a face acest lucru, trebuie să urmați acești pași:

Intră regedit(fără ghilimele) în câmpul de căutare din meniu "Început"și apăsați tasta "Intra".

Mergi la thread „HKEY_CURRENT_USER -> Panou de control -> Mouse”.

Figura 13. Selectarea ramurului de registry dorit pentru a optimiza pauza la afișarea miniaturilor
Faceți dublu clic pe parametru MouseHoverTimeși schimbați-i valoarea în 100 .

Figura 14. Setarea unei noi valori
7. Reducerea timpului închide ferestrele 7

Timp de oprire Windows 7 poate fi redus semnificativ. Cu toate acestea, aceasta este o metodă destul de barbară: reducem timpul alocat procesului pentru a termina programul, după care programul va fi oprit forțat.

Intră regeditîn câmpul de căutare din meniu "Început"și apăsați tasta "Intra".

Mergi la thread HKEY_LOCAL_MACHINE -> Sistem -> CurrentControlSet -> Control.


Figura 15. Selectarea cheii de registry necesare
Modificați valoarea parametrului „WaitToKillServiceTimeout” din sens 12000 (12 secunde) pornit 2000 (2 secunde).

Figura 16. Modificarea valorii.

Salutare tuturor cititorilor blogului. În acest articol vom vorbi despre cum să restabilim performanța sistemului. De multe ori utilizatorii au o problemă muncă lentă computer, mai ales la înregistrare iar la lectură discuri sau pur și simplu „frâne” nerezonabile ale sistemului în timpul funcționării sau încărcării. De ce sistemul se blochează citiți
Pot exista o mulțime de motive pentru aceasta, astăzi îmi propun să ia în considerare unul destul de comun - acesta este un mod de funcționare incorect CD/DVD - ROM sau hard disk-uri, adică să vorbim despre PIO și DMA.Citiți cum să verificați hard disk-ul pentru erori și să le remediați.

Care este esența și diferența dintre PIO și DMA.

PIO și DMA- acestea sunt două moduri de funcționare a hard disk-urilor, în caz general orice unitate.
PIO (Intrare/Ieșire programabilă)- modul deja depășit, pentru ca acesta să funcționeze are nevoie
se angajează CPU, ceea ce duce la pierderi semnificative de performanță.
DMA (Acces direct la memorie) - metoda modernă, care ocolește procesorul și
contestatii direct la RAM, acest lucru permite în mod semnificativ creste productivitateași scapă de „frânele” enervante.
Modul DMA în diverse opțiuni a fost folosit de mult în sălile de operație sisteme Windows 7, 8 și, de asemenea, la 10, totuși în Windows XP, există adesea o situaţie în care DMA trece automat la PIOși adu-l înapoi deja metode convenționale nu va merge. Ce cauzează această situație?
Implementat în Windows XP mecanism controlul erorilor, dacă erorile apar prea des la citirea de pe un hard disk sau altă unitate, sistemul trece automat la un mod mai lent, unde procentul acestora este mai mic. Cu toate acestea, Windows XP poate pune un dispozitiv care funcționează normal în acest mod.
Cum să remediați erorile Windows citește

Și, așadar, să verificăm modurile de funcționare ale tuturor unităților, astfel încât sistemul să nu încetinească..

1 . Lansați consola "Managementul computerelor"clic dreapta pe "Computerul meu"


în meniul derulant selectați elementul "Manager de dispozitiv", sau prin
Panoul de control. Sau Start - Run - devmgmt.msc

2. Selectați " Manager de dispozitiv", selectați IDE ATA/ATAPI controlorii,


Se vor deschide mai multe linii cu controlere - ne interesează :
Primar si Secundar canale IDE→ mergem unul câte unul la proprietăți aceste canale (clic dreapta pe canal, linia „ Proprietăți"), la marcajul " Opțiuni suplimentare»,
Sunt două grupuri aici „Dispozitiv 0” și „Dispozitiv 1”, fiecare are linii
„Modul de transfer”– trebuie selectat „DMA dacă este disponibil", apoi linia « Modul curent transferuri", trebuie să fie ceva de genul „Modul Ultra DMA: 4,


dacă „modul PIO” este setat aici, atunci acesta este al nostrușansă și vom face repara.
Dacă peste tot modul merită ultra DMA, atunci totul este în regulă cu tine și acțiuni ulterioare nu este nevoie să continui.
3. Mai întâi, să încercăm să o reparăm manual - în fiecare linie „Mod transfer” setat la „DMA, dacă este disponibil”, faceți clic "BINE"și reporniți computerul. După ce a pornit din nou
ne uităm la modurile de operare ale canalelor, dacă DMA este instalat peste tot, atunci totul este în ordine, dacă a mai rămas PIO, apoi continuam mai departe.
4. Găsiți din nou Canale IDE primare și secundareși ștergeți-le (clic dreapta pe fiecare canal, selectați din listă "Şterge"). Nu vă fie teamă, totul va funcționa bine.
Reporniți computerul din nou - Windows XP va găsi controlereși transferați-le la modul rapid lucru, adică în DMA. Verificați rezultatul, ar trebui să existe un mod peste tot DMA.
5. Dacă toate cele de mai sus nu au ajutat și vezi din nou „ modul PIO", atunci va fi necesar rearanjați șoferii Pentru placa de baza– suprasarcină
și verificați din nou rezultatul.
6. Ei bine, ultimul punct, dacă după toată suferința regimului PIO nu a dispărut, atunci va trebui să-l editați registru Aș dori să notez - efectuați orice operațiuni cu
registrul foarte atent și atent, orice acțiune incorectă poate duce la inoperabilitatea completă a sistemului dvs. Cel mai bine este să faceți o copie a registrului în avans.
Citiți cum să configurați Windows XP folosind registry

Mai întâi, încercați să dezactivați sistemul de control al erorilor.
Pentru a face acest lucru, în ramura registrului:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\,
creați o cheie Controlul erorilorși setați-i valoarea la 0.


După aceea, reporniți și urmați pasul №4.


puteți seta manual modul DMA.
Există mai multe foldere aici - 0000, 0001, 0002.
0000 – responsabil pentru controlor în sine;
0001 – responsabil pentru IDE secundar Chanell;
0002 – responsabil pentru IDE primar Chanell;
Deschideți folderul pentru canalul de care avem nevoie. Contine
mai multe taste, mai întâi selectați:
MasteDeviceTimingModeAllowed
SlaveDeviceTimingModeAllowed
și setați valoarea egală cu 0хffffffff.
După aceasta, setați valoarea următoarelor chei:
MasterDeviceTimingMode
SlaveDeviceTimingMode
conform urmatoarelor date, in functie de
sprijinit Moduri UDMA:
Modul UDMA 2 – 0×2010
Modul UDMA 4 – 0×8010
Modul UDMA 5 – 0×10010
Modul UDMA 6 – 0xffff

După aceea, reporniți și verificați rezultatul - totul ar trebui să funcționeze bine.
Cum să accelerezi și să restabiliți Performanța Windows 10, citeste
Care este viteza de transfer de informații în computere, citiți
Sper că acest articol vă va ajuta să setați modurile corect PIO și DMA si creste performanța generală sisteme.


Dragi cititori!
Dacă v-a plăcut blogul și materialele publicate s-au dovedit a fi utile pentru dvs., atunci vă rog să ajutați cu conținutul și dezvoltarea acestui blog. Puteți face acest lucru donând orice sumă. Sprijinul dumneavoastră financiar va fi folosit pentru a promova blogul și a completa blogul material bun, îmbunătățirea funcționalității și ușurința în citire și implementarea planurilor ulterioare.
1) Prin transferul de bani pe card Sberbank: 4424 7710 1196 4323
2) Cea mai simplă modalitate, care nu va necesita mult efort pentru fiecare utilizator și cititor al blogului, este la sfârșitul fiecărui articol să existe mai multe butoane ( "distribuie") pentru a adăuga un articol la social media sau bloguri și alte resurse de comunicare online.
Mulțumesc anticipat tuturor celor care vor ajuta la dezvoltarea blogului.