Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Greșeli
  • Determinarea configurației computerului prin software. Determinarea configurației relative Precum și alte lucrări care vă pot interesa

Determinarea configurației computerului prin software. Determinarea configurației relative Precum și alte lucrări care vă pot interesa

Configurare eu Configurație (din latină târzie configuratio - modelare, locație)

aspect, contur, imagine; aranjarea reciprocă a obiectelor; raportul dintre părțile constitutive ale obiectelor complexe.

II Configurare

molecule, în stereochimie (Vezi. Stereochimie) caracterizează aranjarea spațială a atomilor sau a grupurilor de atomi într-un atom asimetric (Vezi. Atom asimetric) , la o legătură dublă substituită asimetric (vezi legătura dublă), la un inel mic (rigid), la atomul central în complexe. Diferențele dintre configurațiile moleculelor determină existența a două tipuri de stereoizomeri stabili - geometrici și optici (vezi Izomerie). La determinarea K. sunt utilizate pe scară largă metodele chimice și mai ales fizice de cercetare. Deci, folosind o metodă specială cu raze X, a fost posibil să se demonstreze, de exemplu, aranjarea spațială a substituenților pe atomii de C asimetrici (marcați cu asteriscuri) într-o moleculă de acid tartric (vezi. Acizi tartric) . - în dextrogir (I) și levogitor (II):

K. al unei molecule nu se modifică atunci când conformația ei se modifică (vezi Conformația) , adică, atunci când se întoarce legăturile simple ale părților individuale ale moleculei una față de alta. Uneori (de exemplu, în chimia fizică și chimia compușilor macromoleculari), termenul „K”. este înțeles mai larg, însemnând prin el modelul spațial complet al moleculei.

V. M. Potapov.


Marea Enciclopedie Sovietică. - M.: Enciclopedia Sovietică. 1969-1978 .

Sinonime:

Vedeți ce este „Configurare” în alte dicționare:

    - (lat. configurare, din cum with, and figura image). 1) imagine, aspect. 2) poziţia planetelor unele în raport cu altele. 3) poziția stelelor în raport cu constelațiile cunoscute. 4) configurația țării, conturul granițelor acesteia. Dicționar de cuvinte străine incluse în ...... Dicționar de cuvinte străine ale limbii ruse

    Configurație: Wikționarul are o intrare pentru configurare Configurație (astronomie) ... Wikipedia

    Cm … Dicţionar de sinonime

    configurație- si bine. configurație f., germană Configurație lat. asemănarea configurației. 1. aster. Poziția reciprocă a planetelor. Sl. 18. Apare orice diferență în distanța dintre cer și stele, față de distanța dintre ele, configurație și convergență și divergență. ... ... Dicționar istoric al galicismelor limbii ruse

    configurație- Un set de valori ale parametrilor care determină funcționarea dispozitivului. [Intenție] configurare - configurare (ITIL Service Transition) Un termen generic folosit pentru a descrie un grup… … Manualul Traducătorului Tehnic

    CONFIGURARE (lat. configuratio image) (carte). Vedere, contur, imagine. || Dispunerea reciprocă a oricăror obiecte, raportul dintre unele obiecte. Configurația stelelor de pe cer. Dicționar explicativ al lui Ushakov. D.N.…… Dicționar explicativ al lui Ushakov

    - (din latină târzie configuratio modeling the location), aspect, contur; aranjarea reciprocă a obiectelor... Dicţionar enciclopedic mare

    CONFIGURARE și, femeie. (specialist.). Conturul exterior, precum și poziția relativă a obiectelor sau părților acestora. K. produse. | adj. configurație, oh, oh. Dicționar explicativ al lui Ozhegov. SI. Ozhegov, N.Yu. Şvedova. 1949 1992... Dicționar explicativ al lui Ozhegov

    Femeie aspect exterior, contur, schiță, imagine. Dicţionarul explicativ al lui Dahl. IN SI. Dal. 1863 1866... Dicţionarul explicativ al lui Dahl

    - (din latinescul târziu coniguratio modelare, locație) a unei aeronave, o combinație a pozițiilor elementelor aripii, trenului de aterizare, suspensiile exterioare și alte părți și ansambluri ale aeronavei care determină contururile sale exterioare. În funcție de stadiul zborului ...... Enciclopedia tehnologiei

    - (din lat. configuratio form, way of life) ing. configurație; limba germana Configurare. 1. Contur exterior, poziția relativă a c.l. obiecte sau părți ale acestora. 2. În psihologia Gestalt, și un eșantion format din elemente interdependente, atunci când se studiază k ... ... Enciclopedia Sociologiei

Cărți

  • Integrare SAP ERP „Contabilitate și raportare” . Configurare și design, Naem Arif, Sheikh Mohammed Tauseef. Prin această carte, veți învăța cum să maximizați rentabilitatea investiției în implementarea dvs. SAP, asigurându-vă că toate componentele sale sunt integrate perfect. Acesta explică caracteristicile...

Introducere.

În acest articol, vom lua în considerare problemele de a găsi și de a determina parametrii diferitelor dispozitive.

Când un programator are o întrebare de genul „Cum se stabilește cât de mult RAM este într-un computer?”, În 90% din cazuri se rezolvă trivial - se folosește un anumit serviciu al sistemului de operare, care răspunde la toate întrebările astfel.

Dar dacă nu puteți utiliza serviciile, de exemplu, în cazul dezvoltării propriului sistem de operare? (Sună, desigur, nerealist, dar, cu toate acestea, au existat întotdeauna entuziaști, iar dacă nu vă scrieți propriul sistem de operare, atunci măcar vă dați seama cum o fac sistemele de operare deja scrise, cred că va fi interesant.

Acest articol este destinat să răspundă la întrebarea cum să determinați echipamentul instalat la un nivel complet hardware.

Să definim imediat ce vom determina exact:

  1. Procesor (frecvență, producător, capabilități)
  2. RAM (capacitate)
  3. HDD (volum).
  4. Dispozitive PCI (producător, model)

1) CPU .

Determinarea oricărui procesor existent compatibil Intel constă în 3 pași principali:

  1. Determinați suportul pentru instrucțiunea CPUID.
  2. Dacă este acceptat, definiți restul parametrilor.
  3. Determinarea frecvenței ceasului.

Procesoarele suportă instrucțiunea CPUID (atât intel, cât și AMD) începând de la a cincea generație (Pentium) și modelele ulterioare 486 (pentru ca TASM să vă „înțeleagă” când utilizați CPUID, trebuie să fie versiunea 5.0 și mai mare).

Dacă nu este acceptat, este posibil să se determine producătorul și alți parametri ai procesorului numai în unele moduri nedocumentate.

Să vedem cum diferă procesoarele care nu acceptă CPUID (80386, 80486, procesoare mai vechi precum 80286 și mai mici, cred că nu are sens să luăm în considerare).

Este simplu - dacă bitul 18 din EFLAGS este disponibil, atunci procesorul este 486 sau mai rece, dacă nu poate fi schimbat cu instrucțiunea POPF - 386.

În același EFLAGS, trebuie să încercați să schimbați bitul ID (21) dacă acesta poate fi modificat programatic - procesorul acceptă instrucțiunea CPUID.

CPUID are un parametru care este setat în registrul EAX.

De obicei, ca răspuns la un apel CPUID cu EAX=0, procesorul returnează un șir de identificare a furnizorului în EBX:ECX:EDX.

Intel are „GenuineIntel”, AMD are „AuthenticAMD”, Cyrix are „CyrixInstead”.

(Rețineți că dimensiunile tuturor șirurilor sunt de 12 caractere - trei registre de 4 octeți).

Când CPUID este apelat cu EAX=1, informații despre tipul, modelul și pasul (modificări în cadrul aceluiași model) al procesorului sunt returnate în registrul EAX.

Aceste valori sunt decodificate conform unor tabele speciale.

EAX - pas (pas)
EAX - model (model)
EAX - familie (familie)
EAX - tip
EAX - rezervă (rezervat)
EAX - model extins (numai Pentium 4)
EAX - familie extinsă (numai Pentium 4)
EAX - rezervă (rezervat)
EBX - brand-index (brand-index)
EBX este lungimea șirului șters de instrucțiunea CLFLUSH (Pentium 4)
EBX - rezervă
EBX este identificatorul APIC al procesorului.
ECX - 0

EDX conține informații despre diferite extensii de arhitectură (dacă un anumit bit este 1, extensia este acceptată). Mai jos este un tabel conform căruia puteți extinde independent programul atașat articolului.

Pic Descriere
0 Prezența unui coprocesor
1 Extensie pentru modul V86, disponibilitatea steagurilor VIP și VIF în EFLAGS
2 Depanare extensii (Oprire la accesul la port)
3 Dimensiunea paginii extensibilă până la 4Mb
4 Prezența unui contor de ștampile în timp real (și instrucțiuni RDTSC)
5 Suport pentru registre specifice modelului în stil Pentium
6 Extinderea adresei fizice la 36 de biți
7 Suport pentru excepția de verificare a mașinii
8 Instrucțiunea CMPXCHG8B
9 Disponibilitatea APIC-urilor
10 REZERVAT
11 Suport pentru instrucțiunile SYSENTER și SYSEXIT (pentru AMD - SYSCALL și SYSRET)
12 Registre de control al memoriei cache (MTRR)
13 Suport global de biți în intrările din directorul paginii
14 Suport pentru arhitectura de control al mașinii
15 Suport pentru instrucțiunile de transfer condiționat CMOVxx
16 Suport pentru atributele paginii
17 Posibilitatea de a utiliza modul PSE-36 pentru paginare
18 Suport pentru numărul de serie al procesorului
19 Suport pentru instrucțiuni CLFLUSH
20 REZERVAT
21 Suport pentru remedierea înregistrării istoricului de navigare
22 Prezența controlului frecvenței de ceas (ACPI), pentru AMD - MMX „proprietar”.
23 Suport MMX
24 Suport pentru instrucțiunile de salvare/restaurare a contextului FPU
25 SSE
26 SSE2
27 Urmărire automată (Self Snoop)
28 REZERVAT
29 Reducerea automată a performanței în caz de supraîncălzire
30 AMD 3Dnow extins!
31 AMD 3Dnow!

La apelarea CPUID cu EAX=2 (funcția a apărut de la Pentium II, nu este disponibilă în procesoarele AMD), așa-numiții „descriptori” sunt returnați în registrele EAX, EBX, ECX, EDX, care descriu capabilitățile cache-urile și bufferele TLB. Mai mult, AL conține un număr care indică de câte ori este necesar să se execute secvențial CPUID (cu EAX=2) pentru a obține informații complete. Descriptorii sunt construiți conform acestui principiu: nu trebuie testați biți, dacă un anumit octet este pur și simplu prezent în registru, atunci trebuie interpretat. În practică, de obicei fac acest lucru, de exemplu, EDX, mai întâi se uită la ceea ce este în DL, interpretează conținutul acestuia, apoi fac SHR EDX,8 și se uită din nou la DL etc. Bitul 31 este un semn al fiabilității informațiilor din registru; dacă este egal cu 1, conținutul registrului este de încredere. Înainte de a executa instrucțiunea CPUID cu EAX=2, trebuie mai întâi să vă asigurați că procesorul curent îl acceptă.

Posesorii fericiți de procesoare Pentium III (numai ei) pot determina numărul de serie al procesorului lor (după activarea mesajului procesorului acestuia în BIOS, care este dezactivat implicit) folosind CPUID cu EAX=3.

În registrele EDX:ECX, cei 64 de biți inferiori ai numărului sunt returnați, împreună cu ceea ce este returnat în EAX cu CPUID (EAX=1), ei formează un ID unic de procesor de 96 de biți (care, la un moment dat, există s-a vorbit atât de mult).

În plus, procesoarele AMD au capacitatea de a apela funcțiile EAX=80000005h și 80000006h.Ei raportează informații precum asociativitatea elementelor TLB și cache, dar nu ne vom adânci acum într-o astfel de junglă.

Procesoarele AMD (începând cu K5) și Pentium4 au capacitatea de a raporta un șir de 48 de caractere (nu cel de CPUID(0)), aceste capabilități sunt, de asemenea, activate de numere de caracteristici mai mari de 80000000h.

Instrucțiunea CPUID este disponibilă în orice mod de procesor și cu orice nivel de privilegii.

Manualul este însoțit de un cod sursă dedicat utilizării instrucțiunii CPUID, programul definește suportul pentru MMX, SSE, SSE2. Acolo sunt folosite doar cazuri cu EAX=0 și EAX=1, motivul pentru aceasta este simplu - începând cu EAX=2, există discrepanțe foarte mari între intel și AMD și nu vreau să fac un manual personalizat pentru intel (precum și pentru AMD). A asigura ambele cazuri înseamnă a complica programul și a găsi probleme cu testarea pe diferite procesoare.

Frecvența procesorului poate fi determinată în multe feluri, pe vremuri se măsurau timpul de execuție al ciclurilor, dar trebuie să spun că această metodă este foarte inexactă și nu este aplicabilă tuturor procesoarelor.

Începând cu Pentium, în arhitectură a fost introdus un contor de ceas (în general, Intel nu îl numește așa și susține că în viitor s-ar putea să nu conteze ceasurile, este garantat doar că contorul va crește monoton) vom determina frecvența procesorului folosind acest contor. Pentru început, un pic despre el însuși: Contorul de ceas are o capacitate de 64 de biți și crește cu 1 cu fiecare ciclu de procesor pornind de la semnalul RESET #, continuă numărarea când este executată instrucțiunea HLT (de fapt, când această instrucțiune este executată , procesorul nu se oprește deloc, ci execută doar în mod continuu o instrucțiune NOP, care la rândul său este o instrucțiune XCHG AX,AX camuflata (opcode NOP este 10010000b, XCHG AX,codul operațional reg este 10010reg, care atunci când se folosește registrul AX (000) dă 10010000b, interesant, există de fapt un analog pe 32 de biți al NOP - XCHG EAX,EAX, procesorul răspunde în mod normal la secvența de cod 66h,90h).Instrucțiuni RDTSC (pentru care compilatorul înjură - db 0fh, 031h) EDX: Registrele EAX conțin valoarea curentă a contorului. Măsurarea frecvenței folosind RDTSC este după cum urmează:

  1. Toate întreruperile, cu excepția cronometrului, sunt mascate.
  2. HLT se face.
  3. Valoarea contorului este citită și stocată.
  4. HLT din nou.
  5. Se citește valoarea contorului.
  6. Diferența dintre valorile citite la punctele 3 și 5 este numărul de cicluri pe 1 bifă de cronometru (frecvența de întrerupere a temporizatorului este de aproximativ 18,2 Hz).

La prima vedere, nimic nu este clar. Să ne uităm la diagrama de timp.

Momentul începerii programului este desemnat ca t0, liniuțele de pe axă sunt momentele în care apare întreruperea temporizatorului. Primul HLT din listă este necesar pentru a depăși timpul t1, care nu este cunoscut dinainte, deoarece programul poate fi lansat în orice moment. Apoi, în momentul între t1 și t2, se citește valoarea contorului, se salvează și se face din nou de HLT, procesorul va fi inactiv până la prima întrerupere, adică aproape exact perioada t2, care este egală cu întreruperea. perioada de la cronometru. Astfel, cu o valoare cunoscută a perioadei cronometrului de 18,2 Hz, precum și cu numărul de cicluri pentru această perioadă, puteți afla frecvența exactă a ceasului.

Mov al,0FEh ;masca toate întreruperile cu excepția timer out 21h,al hlt rdtsc mov esi,eax hlt rdtsc sub eax,esi ;in EAX - numărul de cicluri de procesor per 1 bifare a temporizatorului …….. ;conversie la megaherți și afișaj mov al,0 out 21h,al

2) Berbec

Acum să vorbim despre RAM.

Metoda deja clasică pentru determinarea volumului său este următorul principiu:

Dacă scrieți ceva la o adresă inexistentă fizic și apoi citiți ceva de la aceeași adresă, valorile scrise și citite nu se vor potrivi în mod natural (în 99. (9) la sută din cazuri, vor fi citite zerouri). Algoritmul în sine este:

  1. Inițializați contorul.
  2. Stocați în registru valoarea din memorie la adresa [contor]
  3. Scrieți o valoare de test în memorie (în cazul nostru va fi AAh)
  4. Citiți din memorie.
  5. Restabiliți valoarea veche la această adresă.
  6. Comparați valoarea scrisă și cea citită
  7. Dacă este egal - counter=counter+1, dacă nu - ieșiți din buclă.
  8. JMP punctul 2

La prima vedere, totul este foarte simplu, dar în implementarea practică a algoritmului de mai sus apar multe probleme: în primul rând, programul care numără memoria se află chiar în această memorie și, mai devreme sau mai târziu, se va suprascrie cu o valoare de test. . Această nuanță este de obicei rezolvată astfel:

programul este executat în modul real în primul megaoctet, în timp ce numărătoarea începe de la adresele de deasupra megaoctetului.

Această metodă creează o altă problemă - în modul real, doar acest megaoctet este disponibil direct. Această problemă este rezolvată prin aplicarea modului „ireal”, alias Big real-mode.

Cei care știu ce este modul „ireal” pot sări peste acest paragraf, cei care nu știu, pregătiți-vă să asculte%)

După cum se știe în procesor, fiecare registru de segment are părți ascunse sau umbră (părți umbră) în care descriptorul de segment este stocat în cache într-un mod protejat, acestea fiind invizibile pentru programator. În modul protejat, aceste părți sunt actualizate ori de câte ori o nouă valoare este încărcată în registrul de segment, în timp ce în modul real, sunt actualizate doar câmpurile de adresă de bază ale segmentului. Dacă creați un segment cu o limită de 4GB în modul protejat și încărcați un astfel de selector în registrul de segment, apoi treceți în modul real și, fără a urma recomandările Intel, lăsați limita egală cu 4GB, valoarea limitei de segment va rămâne, permițându-vă să utilizați offset-uri pe 32 de biți. Algoritm pentru trecerea la modul nerealist:

  1. Creați mâner cu baza 0
  2. Setați limita de segment la 4 GB
  3. Comutați la modul protejat
  4. Încărcați selectorul de segment într-un registru de segment
  5. Comutați în modul real

După acești pași, poți modul real utilizați constructe precum:

mov ax,word ptr fs:

Unde EDX poate merge de la zero la 4 GB fără a arunca excepții de protecție (în modul real „adevărat”, depășirea de 64 Kb provoacă o excepție GP#) EDX = adresa de destinație de fapt, deoarece baza segmentului în FS=0.

În modul protejat, cu paginarea activată, este inutil să numărați memoria prin această metodă, deoarece pe lângă memoria principală, va fi numărat și fișierul de paginare de pe hard disk, iar pe viitor puteți obține întotdeauna o valoare de aproximativ 4 GB (în funcție de sistemul de operare).

Mai există un punct subtil aici: în cărțile lui M. Hooke și V. Yurov este scris că FS sau GS ar trebui să fie folosite ca un registru de segment „ireal”, deoarece alte registre sunt adesea reîncărcate și procesorul se presupune că resetează 64Kb. limită după reîncărcarea registrului de segment în modul real . În practică, acesta nu este deloc cazul. Procesorul NU atinge câmpurile limită în modul real.

Pentru a evita probleme suplimentare (posibile), voi da un exemplu cu registrul FS.

Ne abatem puțin de la principalul, și anume de la RAM.

Algoritm:

  1. Setați „modul ireal”
  2. Deschideți linii de adrese senior (GateA20)
  3. Setați contorul la 1048576 (1Mb)
  4. Ciclul scriere-citire
  5. Afișează valoarea contorului
  6. Închideți robinetul A20
  7. Ieșire

Exemplu de listare:

586P DESCRIPTOR STRUC ;Structură de descriptor de segment pentru;limită mod protejat dw 0 base_1 dw 0 base_2 db 0 attr db 0 lim_atr db 0 base_3 db 0 ENDS GDT segment use16 ;GDT table empty dq 0 _code descriptor<0,0,0,0,0,0>;Descriptor pentru segmentul de cod de program _temp descriptor<0,0,0,0,0,0>;Descriptorul „Ireal” GDT încheie segmentul de date use16 gdtr df 0 ;Câmp pentru registru șir GDTR db „Memorie disponibilă: „,20 dup (0) data se termină stck segment stack use16 ; presupunem cs:code,ss:stck,ds:gdt start: ;punct de intrare mov ax,gdt mov ds,ax mov _code.limit,65535 ;Cod limit limit 64Kb mov eax,code ;Obțineți adresa fizică și baza de încărcare shl eax, 4 mov _code.base_1,ax shr eax,8 mov _code.base_2,ah mov _code.attr,09Ah ;Atribute - cod segment mov _temp.limit,65535 ;Setare limită la valoarea maximă mov _temp.attr,092h ;Atribute - date segment, acces citire/scriere mov _temp.lim_atr,08Fh ;Setați biți de limită superioară și biți G presupuneți ds:data ;Obțineți adresa fizică a tabelului GDT mov ax,data mov ds,ax mov eax,gdt shl eax,4 mov dword ptr , eax ;Load limit and GDT table address mov word ptr gdtr,23 cli ;Dezactivare întreruperi mov al,80h ;Dezactivare NMI mov dx,70h out dx,al lgdt gdtr ;Load GDTR mov eax,cr0 ;Comutați la modul protejat, inclusiv mov cr0,eax db 0EAh ;Far JMP pentru a încărca selectorul CS dw offset protect dw 08h protect: mov ax,10h ;Încărcați FS în modul protejat mov fs,ax mov eax,cr0 ;Reveniți la real mode dec al mov cr0,eax db 0EAh dw offset real dw code real: ;Deschide GateA20 gate mov dx,92h in al,dx or al,2 out dx,al mov ecx,1048576 ;Valoare inițială contor - 1 Megabyte mov al , 0AAh ;Număr de valori de testare: mov dl,byte ptr fs: ;Salvează valoarea veche la adresa mov byte ptr fs:,al ;scrie valoarea de test acolo mov al,byte ptr fs: ;citește de la aceeași adresă mov byte ptr fs:, dl ; restabiliți valoarea veche a cmp al, 0AAh ; citiți ce ați notat? jnz exit ;Nu - o astfel de adresă nu există fizic inc ecx ;Da - incrementați contorul și repetați din nou jmp count exit: ;Activați întreruperile mov al,0 mov dx,70h out dx,al sti mov dx,92h ;Închideți poarta A20 în al,dx și al,0FDh out dx,al mov ax,cx ;Procedura de conversie a numărului în șir necesită shr ecx,16 ;Pentru ca valoarea să fie în DX:AX mov dx,cx ;Convertire DX:AX=ECX push ds pop es lea di,string add di,18 ;salta apelul de linie „Memorie disponibilă” DwordToStr ;conversia la forma de caracter mov ah,9 mov dx,offset string ;output int 21h mov ax,4c00h ;End int 21h codul se termină sfârşitul începutului

După pornirea programului, ar trebui să așteptați puțin, de aproximativ 2 ori mai mult decât timpul pentru care BIOS-ul ia în considerare memoria RAM în timpul pornirii.

Există o modalitate de a multiplica viteza programului. Faptul este că acest cod sursă ia în considerare memoria cu o precizie de până la un octet, o astfel de acuratețe nu este în general necesară, tk. dimensiunea unei bare de memorie moderne nu poate fi multiplu al unui megaoctet, așa că puteți crește imediat contorul adăugându-i valoarea 1048576, care poate fi obținută prin înlocuirea comenzii inc ecx cu add ecx,1048576 în scriere-citire ciclu.

3) VOLUM HDD

Detectarea volumului hard diskului se realizează utilizând comanda IDENTIFY DEVICE ATA.

Ce este, vezi articolul meu „ATA pentru victorioși. Partea 1"

Există și codul sursă ATA_ID.asm care determină volumul șurubului..

4) Dispozitive PCI.

Acum este timpul să disecați magistrala PCI.

Mai întâi, să introducem un concept fundamental - spațiul de configurare PCI (spațiul de configurare PCI).

Acesta este numele matricei de registre pe care le are fiecare dispozitiv PCI, prin care sunt setați diverși parametri (numerele de întrerupere pentru dispozitiv etc.). Comunicarea cu dispozitivele PCI are loc în principal prin 2 porturi pe 32 de biți 0CF8h și 0CFCh. Prin intermediul lor, puteți citi și scrie chiar în acest spațiu de configurare al unui anumit dispozitiv.

Acest proces are loc după cum urmează:

Registrul 0CF8h setează adresa dispozitivului pe magistrală, după care datele sunt citite (scrise) din 0CFCh.

Coordonatele dispozitivului pe magistrală (format 0CF8h) arată astfel:

Al 31-lea bit indică validitatea informațiilor din registru, ar trebui să fie 1.

Bus Number - numărul magistralei PCI. (s-ar putea să existe mai multe dintre ele, de exemplu, portul AGP utilizează o magistrală diferită la care sunt conectate sloturile PCI).

Device Number - numărul dispozitivului pe magistrală

Numărul funcției - numărul funcției dispozitivului (aici trebuie să definiți puțină terminologie, faptul este că funcția înseamnă dispozitivul în sine, apoi dispozitivul (dispozitivul) înseamnă abonatul magistralei, adică dacă, de exemplu, există o cartelă în care 2 sunt combinate -sau dispozitiv, atunci va fi perceput ca un singur dispozitiv cu două funcții și chiar și un astfel de dispozitiv „unic funcțional” precum o placă video poate avea multe funcții). Această împărțire în dispozitive și funcții este în cele mai multe cazuri pur logică, dispozitivul „principal” corespunde funcției 0.

Register Number - numărul registrului spațiului de configurare care trebuie citit (scris). (În general, întreg câmpul este folosit până la al 0-lea bit, dar întrucât schimbul se face în cuvinte duble (4 octeți), se dovedește că cei 2 biți inferiori sunt întotdeauna zero).

Acum ne interesează cum puteți afla tipul și producătorul dispozitivului. Să ne uităm la harta spațiului de configurare:

câmpurile marcate cu galben trebuie să fie prezente pentru toate dispozitivele, acolo sunt stocate informații despre ce fel de dispozitiv este și cine este producătorul acestuia. Suntem interesati de 2 domenii:

VendorID - codul furnizorului.

DeviceID - ID dispozitiv.

Este timpul să răspundem la o întrebare foarte importantă „Dar dacă citim ceva din spațiul de configurare al unui dispozitiv real inexistent?”

Răspuns: se va citi valoarea 0FFFFFFFFh, special rezervată acestui scop (deși dacă acest lucru se face sub win, atunci OS poate înlocui orice acolo).

Din toate acestea, putem trage următoarea concluzie: pentru a găsi toate dispozitivele, trebuie să citiți spațiile lor de configurare într-o buclă (schimbarea Bus de la zero la 255, dev de la 0 la 31, func de la zero la 7), dacă 0FFFFFFFFh este citiți, atunci nu există niciun dispozitiv, dacă altceva - dispozitivul este prezent.

Iată un exemplu de citire a procedurii din spațiul de configurare PCI.

Numărul funcției este dat în BL, numărul dispozitivului în BH, funcția în CL și offset-ul (numărul de înregistrare) în CH.

;BL - bus, BH - device, CL - function, CH - register RD_PCI PROC NEAR mov dx,0CF8h xor eax,eax mov al,bl sau ah,80h ,3 or ah,cl mov al,ch and al,0FCh ; Resetați L2 biți afară dx,eax mov dx,0CFCh în eax,dx ret RD_PCI ENDP

Și iată cum ar putea arăta codul pentru găsirea tuturor dispozitivelor:

Mov bl,0;bus mov bh,0;device mov cl,0;function mov ch,0;register label1: call rd_pci ;Citire registru cmp eax,0ffffffffh ;Dacă toate sunt citite, nu există niciun dispozitiv jnz device_found ;Dacă nu toate - "ceva este acolo" label2: ;inc cl ;Dacă acest bloc este necomentat, nu este afișat;cmp cl,8 ;doar dispozitivele, dar toate funcțiile acestora;jnz label1 ;mov cl,0 inc bh ;cmp bh device ciclu ,32 jnz label1 mov bh,0 inc bl ;ciclu magistrală PCI cmp bl,255 jz exit jmp label1 device_found: ... ;Conversia valorilor citite în forma de caractere și afișare

… ; Convertirea valorilor citite în formă simbolică și afișarea lor pe ecran

  1. Ieșire șir (CPUID(0)) și definirea suportului MMX,SSE, SSE2. (CPUID.asm)
  2. Determinarea frecvenței folosind RDTSC (CLOCK.asm).
  3. Determinarea cantității de RAM (MEMORY.asm).
  4. Volumul HDD în sectoare de 512 octeți (ATA_ID.asm)
  5. Găsirea și afișarea VendorID-ului și DeviceID-ului tuturor dispozitivelor PCI (PCI.asm).
  6. Fișier TXT prin care trebuie să decriptați VendorID și DeviceID (PCIDEVS.TXT).

Dacă aveți probleme - scrieți [email protected]

Pentru ajutor în rezolvarea unei probleme dificile cu sistemul de operare sau dispozitivele, este mai bine să oferiți imediat configurația computerului. Acesta poate oferi respondenților un indiciu asupra problemei și veți primi un răspuns substanțial mai rapid în loc să cereți o configurație. Și o astfel de cerere va urma inevitabil, cu excepția cazului în care ați apelat la comunitatea de telepați care vă poate determina configurația cu un efort de gândire.

Ei bine, dacă vă cunoașteți configurația pe de rost. Și dacă nu? Apoi, durează câteva minute și un minim de efort pentru a colecta informații despre configurația computerului. Mai jos voi vorbi despre cum să faceți acest lucru folosind instrumente Windows OS sau programe terțe care pot crea un raport care poate fi publicat pe forum.

Informații de sistem (msinfo32)

Oricât de banal pare, puteți colecta informații despre configurația hardware a computerului dvs. fără a instala programe terțe. Windows include un utilitar Informatii despre sistem, care are capacitatea de a exporta datele colectate într-un fișier text. Puteți porni programul din meniu startProgrameStandardServiciu sau de la fereastră startAlerga(sau câmpuri Căutare pe Vista) tastând msinfo32și apăsând O.K.

După câteva secunde, programul va colecta informații despre sistem și configurația hardware a acestuia. Pentru a exporta un raport, selectați din meniu Fişier paragraf Export, apoi specificați un nume de fișier și salvați folderul. Raportul este gata! Deoarece include diverse informații, fișierul este relativ mare. Pentru publicare pe forum, este mai bine să-l împachetați într-o arhivă.

Pe Windows XP și Vista, același rezultat poate fi obținut din linia de comandă prin rularea comenzii

msinfo32 /raport"<путь к папке>\config.txt"

Fișierul de raport va fi creat în folder, calea către care specificați în comanda de mai sus.

Programe ale terților

Există o mulțime de programe gratuite pentru a determina configurația hardware și este pur și simplu imposibil să le descriem pe toate. Am testat câteva, acordând atenție următoarelor puncte. Programul ar trebui să fie gratuit, să aibă o dimensiune mică și o interfață rusă ușor de înțeles, să poată salva raportul ca fișier text sau pagină web și, dacă este posibil, să nu necesite instalare.

În cele din urmă, m-am hotărât pe două care m-au mituit cu simplitatea interfeței și minimul de mișcări ale corpului necesare pentru a întocmi un raport.

Winaudit

Odată cu configurația hardware, programul colectează diverse informații despre sistemul de operare și aplicațiile instalate. Puteți exclude informații secundare din raport făcând clic pe butonul Opțiuniși bifând casetele așa cum se arată în figura de mai jos.

După aceea, trebuie să apăsați din nou butonul Audit pe bara de instrumente pentru crearea unui raport. Faceți clic pe butonul pentru a salva raportul. Salvați, iar programul va oferi o alegere dintr-o duzină de formate diferite. Este mai bine să salvați raportul ca pagină web (HTML) sau fișier text. Când este salvat ca pagină web, programul creează trei fișiere HTML care pot fi arhivate și atașate la o postare pe forum.

Informații de sistem pentru Windows (SIW)

Programul SIW are o dimensiune de aproximativ 2,2 MB, nu necesită instalare (totuși, doar versiunea în limba engleză este oferită fără program de instalare), are o interfață bine gândită, iar claritatea informațiilor pe care le afișează merită o foarte mare. rating. În versiunea multilingvă, limba rusă a interfeței, dacă este necesar, poate fi setată în fereastră Instrumente -> Opțiuni. Suntem, totuși, interesați să creăm un raport, această opțiune se află în meniu Fişier după cum se arată în figura de mai jos.

Dacă programul dumneavoastră funcționează cu dispozitive computerizate la un nivel scăzut sau folosește orice caracteristică hardware a perifericelor, trebuie să „poate” să determine configurația hardware.

În prezent, sunt produse multe modele diferite de computere personale și platforme de server. Computerul dumneavoastră poate avea procesoare de diferite modele și versiuni. BIOS. În ceea ce privește nomenclatura dispozitivelor periferice, cum ar fi controlere de rețea, adaptoare video, adaptoare de rețea și sunet etc., este aproape nelimitată.

Configurația hardware este scrisă în zona de date BIOSși memorie nevolatilă CMOS program special Configurarea BIOS-ului.

BIOS

(diapozitivul numărul 2)

Sistem I/O de bază (BIOS - Sistem de intrare/ieșire de bază)- este o interfață software între programe și hardware-ul PC.BIOS izolează sistemul de operare și programele de aplicație de caracteristicile hardware ale dispozitivelor specifice și permite programatorilor să scrie în limbaj de asamblare, C etc., efectuați operațiuni I/O fără să vă pese de adresele dispozitivelor sau de caracteristicile hardware. In afara de asta, BIOS oferă o serie de servicii de sistem, de exemplu, vă permite să aflați dimensiunea memoriei computerului sau ora curentă a zilei.

Se recomandă utilizarea cererilor pentruBIOS în loc să manipuleze direct porturile I/O atunci când scrieți atât programele de sistem, cât și cele de aplicație.Programare la nivelBIOS reduce dependența programelor de modificările parametrilor echipamentului PC și, prin urmare, crește mobilitatea acestora.

După pornirea computerului BIOSîn câteva secunde, verifică aproape toate componentele sistemului.

BIOSîn forma sa actuală există de aproximativ 15 ani, iar până acum activitatea sa nu a fost satisfăcătoare. Cu toate acestea, acest sistem are deja succesor -EFI (Extensible Firmware Interface). Această interfață acceptă sisteme pe 64 de biți, prin care compatibil cu calculatoarele de generație următoare. In afara de asta, cu mediu grafic EFI pentru configurarea mai ușoară a PC-ului. Până acum însă, această nouă tehnologie de verificare a fost găsită doar pe computerele Macintosh și puține computere obișnuite.

După pornirea alimentării, computerul începe să funcționeze.prima componentă a BIOS-ului - program de autotestare POST (Puterea de autotestare). Ea este verifică funcționarea corectă a principalelor componente hardware ale PC-ului. După aceeaBIOS inițializează chipsetul computerului.

Primul sistemul resetează procesorul , dezactivarea liniilor NMI din el(Întrerupere non-mascabilă).

Aproape în același timp, de îndată ce tensiunea, urmați aceeași procedură pentru controlerul tastaturii . În etapa de determinare a resetarii (definirea metodei) BIOS verifică dacă poate fi limitat doar la resetare soft. Pentru a face acest lucru, se citesc biții corespunzători din controlerul tastaturii. Avantajul unei resetări soft este că este cu câteva milisecunde mai rapidă.

AcumBIOS efectuează un autotest , performantacalculul sumei de control bazat pe toți biții din cipul său ROM. În suma cu un anumit punct de referință ar trebui să primească valoarea „00”.

Apoi, computerul trimite o comandă controlerului de la tastatură, ceea ce face ca următorul test să fie executat și alocă un buffer pentru comenzile programului.. în ea BIOS scrie un octet de comandă, verificând astfel controlerul de tastatură încorporat.

Următorul se efectueazăexaminare Cip CMOS (Semiconductor complementar de oxid de metal), unde sunt stocate setările utilizatoruluiBIOS . Aceste fișiere de configurare sunt citite de fiecare dată când sistemul este pornit. Siguranța datelor și setărilor din cip depinde dacă bateria care îl alimentează este conectată.

Sistemtestează, de asemenea, suma de control a cipului CMOS . Această operațiune obiective, în primul rând, pe detectarea defecțiunii bateriei R: Pe termen lung, nu va putea furniza anumite componente ale cipului cu o tensiune suficientă. Primele semne ale unei defecțiuni - resetați setările utilizatoruluiBIOS și ora sistemului.

(diapozitivul numărul 3)

ApoiPOST testează funcționalitatea cronometrului , responsabil pentru distribuirea corectă a întreruperilor hardware (IRQ, cerere de întrerupere ) . O solicitare pentru o astfel de acțiune este o comandă trimisă procesorului de către un hard disk sau o placă video pentru a anunța CPU că există date de prelucrat. În același timp, trece o anumită perioadă de timp din momentul primirii unei cereri și până la începerea prelucrării datelor, care se numește întârzierea întreruperii .

După aceea BIOS-ul pregătește tabelul vector de întrerupere și încarcă setările utilizatorului în memoria CMOS . Cererile de întrerupere sunt mai întâi gestionate de programabilcontroler de întrerupere , care apoi le transmite procesorului. CPU oprește executarea instrucțiunii curente și trimite un semnal de confirmare ca răspuns..

Procesorul citește numărul întreruperii corespunzătoare (vectorului) de la controler și îl folosește ca index în tabel. Conține instrucțiuni furnizate pentru fiecare întrerupere individuală., - de exemplu, o anumită acțiune pentru întreținerea unui dispozitiv.

Întrucât numărul de întreruperi libere din sistem este limitat, într-un computer modern, mai multe dispozitive sunt amplasate pe aceeași linie de întrerupere (Interrupt Sharing). În acest caz, handlerul trebuie să ruleze driverele tuturor dispozitivelor de la care ar putea veni cererea. Acest lucru poate cauza probleme dacă un șofer scris greșit rămâne activ prea mult timp. Un alt dispozitiv al acestei linii de întrerupere scrie informații în buffer în acest moment, care la un moment dat vor fi depășite, ceea ce poate duce la pierderea datelor. Prin urmare, în computerele moderne, sistemul de operare alocă independent numere IRQ între dispozitivele periferice.

ApoiBIOS-ul testează liniile de adresă din primul bloc de memorie de 1MB pentru erori. . Pentru astaPOST scrie șabloane de date în RAM în scopul comparării lor ulterioare.

Mai departe BIOS determină tipul de adaptor video , îl supune pe acesta și monitorul unei serii de teste și apoiinițializează placa video . Numai atunci pot mesajele despre greșeli.

Urmează rândul controlor DMA (Acces direct la memorie). Podul principal (Host Bridge), care se mai numește și nordul (punte, conectează procesorul și RAM la magistrala de sistem a plăcii de bază). Majoritatea tranzacțiilor din autobuz sunt între pod și restul perifericelor. Pentru a reduce timpul de procesare a datelor lor, acestea din urmă pot accesa direct puntea principală și astfel „fără intermediari” pot scrie informații în RAM. În testBIOS reutiliza modelele de date pe care sistemul le pune în RAM.

Interfața tastaturii este, de asemenea, supusă revizuirii . Când funcționează defectuos BIOS-ul dă un mesaj de eroare chiar în această etapă.

BIOS-ul verifică încă o dată unitățile optice, hard disk-urile și conectorii înainte de a executa INT 19 și de a transmite controlul către bootloader, careresponsabil pentru pornirea sistemului de operare și schimbul de date între hard disk și controlerul acestuia . multe versiuni BIOS vă permit să dezactivați execuția IRQ 19- acest lucru este util în cazurile în care sistemul are un controler de disc suplimentar, de exemplu PCI RAID.

Dacă apare o eroare în orice etapă a autotestării, computerul emite bipuri de mai multe ori și afișează un mesaj despre aceasta. Pentru a decripta semnalele BIOS, există tabele cu coduri POST . Dacă doriți să știți exact ce componentă este defectă, placă standard PCI POST pentru depanarea plăcii de bază , care este instalat în slotul PCI. Defecțiunea este afișată ca cod numeric. Folosind tabelul de coduri furnizat împreună cu placa, puteți determina componenta problematică a sistemului.

Dacă e în regulă BIOS va genera un bip scurt, după ce dispozitivul de pornire va fi căutat pentru un sistem de operare de pornire . Dacă în această etapă există eroare , apoi cauză , de obicei acoperite în absența unei înregistrări master de boot - MBR (Master Boot Record).În acest caz, puteți încerca să revigorați sistemul folosind DVD-ul de instalare.

(diapozitivul numărul 4)

Recent, probleme legate de înlocuirea BIOS interfata UEFI ( Interfață Firmware Extensibilă Unificată ). Această interfață este destinată să devină un nou standard pentru sistemul PC de bază.

Pentru ce sunt BIOS-ul și UEFI?

Termenul este folosit și pentru a se referi la sistemul de bază (firmware). Firmware :software implementat hardware (încorporat).. Indică faptul că programul este „conectat” în microcircuitul de pe placa de bază (adică nu trebuie instalat) și pornește automat. Imediat după pornirea computerului, BIOS-ul și UEFI efectuează mai multe sarcini:

    Testarea echipamentelor. la început BIOS efectuează o verificare de bază a principalelor componente ale calculatorului. În același timp, nu sunt verificate toate componentele, ci doar cele care sunt necesare pentru pornirea computerului, de exemplu, procesorul sau RAM.

    După încheierea procedurii de autotestare (durează mai puțin de un minut) BIOS definește unele setări. Aceasta include, de exemplu, frecvența memoriei RAM, timpul la care ventilatoarele încorporate se pornesc sau alegerea modului de economisire a energiei în care computerul va intra după o perioadă lungă de inactivitate. Multe dintre setări pot fi modificate în sistemul de operare în sine, cu toate acestea, majoritatea setărilor BIOS se instalează chiar înainte de a porni Windows. În această etapă a pornirii, utilizatorul poate modifica și unele setări - de exemplu, activarea sau dezactivarea interfețelor individuale de pe placa de bază (de exemplu, pentru hard disk-uri sau dispozitive USB). În plus, puteți alege secvența în care computerul va accesa dispozitivele de pornire la pornirea sistemului de operare (de exemplu, mai întâi hard disk-ul, apoi unitatea CD/DVD și apoi unitatea USB).

Ce înseamnă abrevierile BIOS și UEFI?

    BIOS. Sistem de bază de intrare-ieșire (sistemul de intrare/ieșire de bază) există de aproape 30 de ani.

    UEFI. Interfață Interfață Firmware Extensibilă Unificată Cu 2001 ani a fost dezvoltat de companie Intel ca standard EFI (Interfață de firmware extensibilă , Extensible Firmware Interface) pentru procesor server Itanium. Datorită faptului că acest model a fost întruchiparea celei mai noi tehnologii, găsiți o versiune potrivită BIOS, cu care ar funcționa Itanium după câteva modificări, s-a dovedit a fi imposibil. Măr este primul producător care a început să folosească o versiune personalizată în toate desktop-urile și laptopurile sale EFI. Compania rămâne adevărată EFI Cu 2006 an, când a început să echipeze PC-urile și laptopurile cu procesoare Intel. LA 2005 abrevierea anului EFI a fost adăugat cu cuvântul unificat. Se spune că dezvoltarea interfeței este coordonată de mai multe companii. Aceasta include producători de PC-uri precum Dell,HPși IBM precum și dezvoltatorii BIOS, de exemplu Phoenixși Insyde. Nu a mers fără Microsoft ca principal dezvoltator de sistem de operare.

De ce trebuie să meargă BIOS-ul?

în curs de dezvoltare BIOS, programatorii nu s-au gândit cât timp va fi folosit acest sistem. De aceea în acest sistem de bazăsunt mai multe componente care nu pot fi schimbate sau sunt foarte greu de schimbat.De exemplu,BIOS (fără trucuri speciale) este capabil să recunoască un disc cu o capacitate de doar până la 2 TB, iar hard diskurile moderne de 3,5 inchi pot stoca deja până la 3 TB de date. LAUEFI nu există astfel de restricții.În plus, noul sistem oferă un singurinterfata de programare - acest lucru facilitează dezvoltarea de programe care rulează înainte ca sistemul de operare să se încarce. In afara de asta, UEFI vă permite să integrați funcții suplimentare, cum ar fi un program de backup pentru date. In cele din urma, înUEFI lipsesc unele caracteristici învechite din punct de vedere tehnic, disponibile înBIOS , - de exemplu, comutarea procesorului când sistemul pornește în modul real lent.

Beneficii UEFI:

(diapozitivul numărul 5)

    Suport pentru hard disk-uri de mare capacitate .Pentru a gestiona hard disk-urileBIOS utilizăriMBR (Master Boot Record, Master Boot Record) – conține informații despre partițiile hard disk.Principalul dezavantaj al MBR :dimensiunea fiecărei intrări din ea este de 32 de biți. Ca urmare BIOS poate controla aproximativ 4 miliarde (232) de sectoare. În plus, sistemul de bază „consideră” faptul că dimensiunea fiecărui sector este de 512 octeți; în cele din urmă se pare că BIOS nu poate funcționa cu discuri de peste 2 TB. Și dacă în urmă cu douăzeci de ani un astfel de volum era considerat un vis, acum este o realitate dură. Sectoarele mai mari ar permite discuri de 3TB, dar nu toate programele care accesează hard disk-ul direct funcționează corect cu ele. Cu privire la interfataUEFI , folosește tehnologia pentru a gestiona hard disk-urileGPT (GUID Partition Table), oferind posibilitatea de a scrie mai multe date pe hard disk. În cele din urmă Standardul GPT acceptă hard disk-uri de până la aproape 8 miliarde TB.

    BIOS încorporat . Când utilizați plăci de bază bazate pe UEFI elimină nevoia de BIOS, pentru că toate functiileBIOS cuprins înUEFI sub forma așa-zisuluiModul de suport pentru compatibilitate . Prin urmare, un program care utilizează funcțiile BIOS, funcționează și pe computere cu UEFI.

    Ușurința controalelor. Puteți folosi mouse-ul pentru a naviga prin meniul de setări și a selecta programe. LA BIOS, reamintiți, era posibil să lucrați numai folosind tastatura. În plus, interfața UEFI suportă rezoluție mai mare.

    Beneficii în viteza de descărcare. De la pornirea computerului până la BIOSîncarcă sistemul de operare, trec 30–60 s. UEFI functioneaza mai repede.

    Sistem de operare încorporat. UEFI are, de asemenea, propria coajă. În esență, aceasta este sistem de operare în miniatură, ca DOS(strămoș îndepărtat al Windows), „înțelege” doar comenzile text. Poate fi util pentru utilizatorii avansați sau pentru administratorii de sistem care încearcă să determine de ce sistemul de operare principal nu a pornit. Unii producători, inclusiv MSI, oferta pentru UEFI sisteme de operare proprii bazate pe linux bootabil de pe CD/DVD.

    Programe suplimentare. Mini-OS încorporat este, de asemenea, potrivit pentru instalarea de programe suplimentare. Acesta din urmă poate fi integrat ca elemente separate de meniu de interfațăUEFI sau descărcați de pe CD/DVD. Cu toate acestea, aceasta este o chestiune de viitor - un număr mic de aplicații sunt disponibile în prezent. În plus, vorbim, de regulă, de utilități auxiliare și de jocuri foarte simple, precum Pair Match.

Determinarea configurației folosind BIOS-ul.

acces la BIOS.

(diapozitivul numărul 6)

A accesaBIOS sunt utilizate întreruperi software . În plus, fiecare punct de intrare laBIOS folosește a luivector de întrerupere . Dacă punctul de intrare servește mai multe proceduri (numite funcții BIOS ), atunci numărul funcției este specificat în registruAH .

În spatele procedurilorBIOS întreruperi fixeInt 10h – Int 11Ah .

De exemplu , Int 12h apelează o procedură care returnează dimensiunea memoriei RAM a PC-ului programului care l-a numit.

Parametrii de intrare și de ieșire ai procedurilorBIOS sunt transferate în registrele de uz general ale procesorului central al PC-ului.

De exemplu, Pentru a seta ora sistemului, trebuie să lansați următoarele comenzi:

MOV AH, 1; Funcția 1 - setarea orei

MOV CX, HIGH_COUNT; CX:DX = noua valoare de timp MOV DX,LOW_COUNT

INT 1AH; Punctul de intrare BIOS deservește cereri către cronometru

Următorul program este utilizat pentru a citi ora:

MOV AH,0; Funcția 0 - timpul de citire

INT 1AH; Solicitare BIOS. Rezultatul va fi returnat în registrele CX și DX.

ProceduriBIOS salvați valorile tuturor registrelor, cu excepția celor în care valorile sunt returnate.

Zonele de date BIOS.

(diapozitivul numărul 7)

Zone de date BIOS - acestea sunt fie zone RAM în care sunt stocate informații curente despre starea PC-ului, fie zone ROM în care sunt înregistrate caracteristicile hardware ale dispozitivelor.

Informațiile despre prezența principalelor dispozitive ale computerului sunt înregistrate înzona de date BIOS cu adresa0000:0410 dimensiunea unui cuvânt de doi octeți -cuvânt de configurare . Cu o întrerupereINT 11h programul poate intra în registruTOPOR cuvânt de configurare din zona de date de deasupraBIOS .

La determinarea unei configurații relative, o conexiune cu o configurație necunoscută este corelată cu o altă conexiune a cărei configurație este deja cunoscută.

Când oamenii de știință obțin izomeri spațiali, apare întrebarea: care este structura lor spațială, adică configurația?

Abordarea rezolvării problemei configurației spațiale relative diferă în funcție de ce tip de izomeri spațiali vorbim - $\pi$- sau $σ$-diastereomeri, sau enantiomeri.

Determinarea configurației relative a π-diastereomerilor din momentele dipolare

Un set de metode pentru determinarea cantitativă a unei substanțe și studiul structurii sale moleculare, bazate pe măsurarea permitivității dielectrice $ε$, se numește în mod obișnuit dielectrometrie. Dielectrometria acoperă diferite metode de analiză, care se reduc cel mai adesea la măsurarea constantei dielectrice a unei substanțe, care, de regulă, se datorează orientării particulelor (molecule, ioni cu moment dipol) într-un câmp electric.

Baza utilizării metodei dielectrometriei a fost lucrarea fizicianului german Paul Drude (1897) și munca fizicianului și chimistului olandez, Premiul Nobel pentru Chimie în 1936, Peter Debye (1925-1929). Paul Drude deține dezvoltarea teoriei conductivității electrice și termice a metalelor, el a fost primul care a descoperit și a explicat dispersia anormală a permitivității. El a propus, de asemenea, metode de măsurare a permitivității și indicelui de absorbție al dielectricilor lichidi în intervalele de metri și decimetri ale undelor electromagnetice, a stabilit o relație empirică între structura moleculelor și pierderile dielectrice. Debye a stabilit o relație între permitivitate și pierderile dielectrice cu structura moleculelor. Cu toate acestea, metodele de măsurare a permitivității au început să fie folosite în practică mult mai târziu, când au apărut dispozitive destul de simple și convenabile pentru măsurarea permitivității.

Mark Berliner (1929) a fost unul dintre primii care a demonstrat analitic promisiunea utilizării măsurătorilor dielectrice pentru problema determinării conținutului de umiditate al solidelor. Ulterior, au fost dezvoltate metode pentru determinarea purității compușilor organici și analiza sistemelor organice binare. Și în 1950-1960. pentru prima dată au fost publicate metode de titrare dielectrometrică a sistemelor organice. De menționat că metodele de dielectrometrie au fost dezvoltate, de regulă, pentru analiza sistemelor organice neconductoare sau cu conductivitate scăzută, ceea ce nu epuizează toate posibilitățile dielcometriei.

Mulți $\pi$-diastereomeri sunt caracterizați de anumite valori ale momentelor dipolare:

schimbul online de lucrări ale studenților">

Figura 1. Formele Cis- și trans- (μ = 0). Autor24 - schimb online de lucrări ale studenților

Într-o transformare cu compoziție vectorială, dipolii orientați opus ai legăturilor identice se anulează reciproc și momentul dipolului total este egal cu zero ($μ = 0$); în forma cis, dipolii de legătură sunt însumați și formează momentul de dipol total al moleculei. Deci, de exemplu, în 1,2-dihaloetilene (prezentate în figura de mai sus):

  • pentru izomerii trans, momentul dipolar este zero;
  • în cazul izomerilor cis, momentul dipolului depinde de natura atomului de halogen: 2,42 ($F$), 1,89 ($Cl$), 1,35 ($Br$) și 0,75D ($I$).

Pentru izomerul cis, momentul dipolar este întotdeauna mai mare. Determinarea momentului dipolar face posibilă setarea configurațiilor $Z$ sau $E$ pentru $\pi$-diastereomeri.

Metoda de ciclizare

Metoda ciclizării este una dintre metodele universale pentru determinarea configurațiilor $Z$ și $E$ pentru π-diastereomeri.

Știm că există un acid - o substanță cristalină albă cu $t_(pl.)$ = 130 ° С, foarte solubilă în apă cu formula moleculară $C_4H_4O_4$ și structurală $HOOC-CH=CH-COOH$ (acid etilendicarboxilic ) acest acid se numește maleic. Dar simultan cu ea există o substanță cu aceeași greutate moleculară și formulă structurală - un acid cu $t_(pl.)$ = 287 ° C, ușor solubil în apă - acid fumaric. Adică vorbim despre $\pi$-diastereomeri (izomeri geometrici cis-trans), care pot avea formulele:

Figura 2.

Pentru a stabili ce acid corespunde uneia sau alteia formule, se efectuează următorul experiment. Când este încălzit, acidul maleic desparte apa și dă anhidridă ciclică.

Acidul fumaric nu formează o astfel de anhidridă. Deoarece grupările carboxil trebuie aproximate pentru formarea anhidridei ciclice, este logic ca aranjarea lor în acid maleic să fie logică. Acidul fumaric, respectiv, corespunde unei formule diferite cu un aranjament divers de grupe –$COOH$. Definiția configurației în acest caz este rezolvată prin metoda de ciclizare:

Figura 3

La determinarea configurației prin metoda ciclizării, centrul steric, adică legătura atomilor $sp2$-hibridați, nu ar trebui să fie afectată.

Metoda ciclizării a fost folosită și pentru a determina configurația acizilor țânțari și cumaric. Acidul cumaric există numai sub formă de săruri și esteri; atunci când acidul liber este izolat, se ciclează spontan cu formarea de lactonă - cumarină. Ușurința ciclizării indică faptul că acidul cumaric este în configurația cis. Acidul cumaric nu ciclizează și, în consecință, corespunde formulei cu aranjamentul opus al hidrogenului:

Figura 4

acid cumarinic acid cumarinic

Determinarea configurației diastereomerilor π ai dicetonelor cu legături duble în lanț

De asemenea, este posibil să se determine configurația diastereomerilor π ai dicetonelor cu o structură nesaturată prin această metodă. De exemplu, putem lua în considerare 1,2-dibenzoiletilena, a cărei formulă corespunde la doi izomeri, dintre care unul se topește la 111 ° C, iar celălalt la 134 ° C. Al doilea izomer mai refractar este capabil să formeze produsul ciclic 3,6-difenilpiridazină în reacția cu hidrazina:

Figura 5

Aceasta indică faptul că acest izomer are o configurație cis:

Figura 6

Primul izomer, care se topește la 111°C, trebuie deci să aibă configurația trans:

Figura 7

Top articole similare