Uita-te la câine timer - overclockeri fiecare)

În timpul discuției, unul dintre articolele mele anterioare, sa sugerat că producătorii de multe ori nu dezvăluie toate posibilitățile de fier produse de acestea. De ce - nu este clar. În acest articol vom doar despre un astfel de cip voalat. Proprietarii de mai multe placi de baza nu numai că nu știu, dar nici măcar nu-și dau seama că există. Numele acestui cip Watch Dog timer (WDT). Acesta este prezent în aproape toate microcipuri moderne Super I / O (și nu numai).

    N.B. Recent, watchdog cuvântul a devenit destul de popular. De obicei, WD înțeles clasa de dispozitive sau de programul original, care este însărcinat cu responsabilitatea de a monitoriza valoarea unui parametru (sau mai multe). Atunci când valorile de ieșire ale parametrului limitelor, dispozitivul / Programul original ar trebui să producă orice acțiune: activa / dezactiva orice dispozitive suplimentare, audio / video / alte semnalizare.
În acest articol, aș dori să ia în considerare o clasă mai restrânsă de dispozitive: WatchDog Timer. Tradus în limba română: „câine de pază“. Este dispozitiv hardware destul de primitiv format din cel puțin:
  • metru
  • unitatea de control (UCH)

    Uita-te la câine timer - overclockeri fiecare)

      N.B. Este necesar să se facă imediat un punct important: WDT operează independent de CPU. Prin urmare, WDT continuă să funcționeze chiar și atunci când procesorul este situându-se!

    Algoritmul de operare:
    • Modalitatea de program contra unui număr poate fi înregistrat.
    • Imediat contra valoare începe să scadă.
    • În momentul în care acesta devine zero, operatorul efectuează anumite acțiuni, cum ar fi resetarea calculatorului.
    Astfel, pentru a împiedica repornirea, programul actualizează conținutul contorului periodic. Dacă ea nu se poate face (de exemplu, în cazul în care computerul se blochează), apoi, după un timp, atunci când conținutul contorului ajunge la zero, WDT va reseta sistemul.

    WDT specifice de implementare poate fi ușor diferită de cea descrisă mai sus.
    De exemplu, contorul în sine să nu fie disponibile pentru a modifica direct programul. În schimb, pune o valoare într-un registru suplimentar, al cărui conținut a dispozitivului de comandă se mută imediat în contorul, și contorul începe să numere.

    În cazul programului de completare. registru contor poate fi utilizat, ceea ce duce citirea directă. În acest caz, conținutul său este comparat în mod continuu cu conținutul dop.registra dispozitivului de comandă. În cazul în care valorile se potrivesc, CU produce acțiunea corespunzătoare (reset).

    În dispozitivul de comandă poate fi mult mai multe caracteristici decât doar o repornire a contorului ajunge la zero a sistemului. Se poate, de exemplu, semnal, o expirarea unui interval de timp predeterminat generarea unei întreruperi (SMI) sau o modificare a stării anumitor biți registre.

    În general, punerea în aplicare specifică WDT depinde de imaginația dezvoltator și sarcinile care sunt destinate să rezolve.


    Este timpul pentru a merge la practica.

    Luați în considerare activitatea WDT, care este o parte integrantă a IT8712F cip (Super I / O de la firma RTN). Acest cip este găsit într-un număr foarte mare de companii, cum ar fi placa de baza Gigabyte, EliteGroup și altele. În același timp, este absent in aproape toate placile de baza placi companiei EPOX.

      N.B. Îmi amintesc că specifică ce cip este instalat pe o anumită placa de baza poate fi pe site-ul oficial al MBM.
      Aflați care este în valoare de cip în placa de bază, puteți chiar mai ușor. Start SpeedFan (poate detecta cip) și veți vedea ceva similar în fereastra de raport:


  • În acest caz, structura WDT diferă puțin de partea discutată mai sus imputernicire din cauza unor complicații. Principalele sale componente:
  • contor
  • dispozitiv de control
  • registru suplimentar
  • registrul de configurare
  • registru de stare

    Uita-te la câine timer - overclockeri fiecare)

    Funcția acestor componente vor fi evidente din descrierea funcționării algoritmului WDT:

  • Programul intră în intervalul suplimentar înregistrare nenulă timp.
  • Imediat UU inițializează un contor (o valoare a acestui contor suplimentar tolerată. Sensibilă) și începe o numărătoare inversă.
  • În cazul în care numărul a ajuns la zero, WDT poate efectua următoarele etape:
      - pentru a da un semnal prin Krst
      - emite un semnal prin PWROK1 / 2

    După registrul de configurare poate preveni sau a permite celor două opțiuni. Mai bine nu mă întreba ce anume ei înseamnă Principalul lucru este că alegerea primul dintre ele (Krst) vă permite să reporniți computerul.

    - schimba starea registrului de stare

  • Valoarea contor este inițializată de fiecare dată când un registru suplimentar în acest moment:
      -Programul intră în adaosul înregistra orice altă valoare decât 0;
      -atunci când utilizatorul face clic pe orice tastă de pe tastatură;
      -atunci când utilizatorul deplasează mouse-ul (driverul mouse-ul în cazul în care sistemul de operare este instalat);
      -atunci când datele sunt schimbate prin intermediul Gameport;
      -atunci când datele sunt schimbate prin infraroșu (CIR)
    WDT reacție pentru fiecare dintre ultimele patru ambele pot permite Soba și neagă (printr-un registru de configurare).

    Dacă sunteți interesat de oportunitățile oferite de timer-ul watchdog, vă pot oferi un mic program. vă permite să controlați parametrii muncii sale. Recomandări pentru utilizarea utilitarului sunt fișiere ReadMe.RUS.txt.

    PS: Așa cum am scris, WDT este în aproape fiecare cip moderne IO (superio). Am întâmplat drege cu W83697HF, W83627 (T) HF / W83637HF din vinbonda. Dar pentru a face aceste cipuri WDT pentru a reporni computerul pentru a-mi [încă] a eșuat. Este foarte probabil ca o astfel de funcție poate fi implementată printr-o revizuire placa de baza mică, folosind un ciocan de lipit.

    PPS: Unele remarci despre activitatea pe WDT IT8712F:

      1) Se observă că nu este întotdeauna definit cu precizie intervalul de timp corespunde real. De exemplu, în cazul în care cronometrul a fost ajustat la 60 de secunde, atunci se poate lucra numai după 80 de secunde. Ie există unele erori. Această eroare crește liniar cu intervalul de timp, astfel încât nu este dificil să se ia în considerare, dacă este necesar.

    2) Spre deosebire de alte firme WDT, chips-uri WDT în RTN de la superio nu reflectă valoarea curentă a contorului. Prin urmare, există o oportunitate unică de a judeca starea sa - de registru WDT Statut Reg.

    3) La trimiterea software-ul pentru COM-porturile timer-ul computerului este dezactivat. Motivul: chips-uri de traducere de la modul avansat la normal. Cum de a lupta. Nu știu. Mai ușor de pus cu ea sau porturi dezactiva

  • Ca o descriere concisă a principiului WDT (citat din README):
    citat:
    Ce este un watchdog timer?

    Un „câine de pază“ este o componentă hardware care contează în jos un contor de timp.
    În cazul în care cronometrul ajunge la zero, este greu-resetează calculatorul (cum ar fi împingerea
    butonul de resetare). Deci, software-ul trebuie să resetați acest temporizator prea evita
    restarta.
    Lucru bun este: În cazul în care computerul se blochează, software-ul
    nu se poate reseta cronometrul și (ar trebui) reporni automat.
    Actuala versiune v.0.2: 8rdawdt-0.2.tar.bz2 (din păcate, doar rulează sub Unix)

    ---
    Discutați despre acest lucru și alte articole / scrie la pagina mea personală la filiala corespunzătoare a conferinței.

    articole similare