Î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.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.
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:
Funcția acestor componente vor fi evidente din descrierea funcționării algoritmului WDT:
-
- 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-
-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)
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.