Activitatea de cercetare № 7 Dispozitiv de sprijin sistemic

Cei calificați hardware și sistem de lucru programatori
cu platforma PC, un semn bun, „set gentleman“ chips-uri
Suport: controler de acces direct la memorie (DMA) Intel 8237 (K1810VT37)
Intel 8259A controler de întrerupere (K1810VN59A), temporizator sistem Intel 8254
(K1810VI54). În ciuda faptului că, pentru o lungă perioadă de timp pe o placa de baza moderna
Nu puteți vedea aceste componente ca chips-uri separate (acestea
implementat în „Southbridge“ chipset-ul) la nivelul modelului de programare ei
La fel ca și magistrala ISA vechi, încă mai există.

Dar timpul trece, și la cerințele plăcii de bază crește în mod semnificativ.
Prin urmare, inginerii au ales pentru a adăuga un nou sistem de dispozitive de sprijin,
cu păstrarea vechi, pentru a asigura compatibilitatea. Să luăm în considerare,
de ce dezvoltatorii de astăzi nu mai sunt mulțumiți de aceste „prieteni vechi“, și
dispozitivele care au venit pentru a le înlocui.

Exemple de dispozitive sunt utilizați încă „vechi“ controlerul DMA,
un controler de floppy disk, el nu a fost transferat la noua tehnologie, ca
Rata de transfer de date este limita în mod semnificativ capacitatea
conduce.

„Vechi“ de întrerupere controler. bazat pe două cascaded
cipuri Intel 8259A, are 15 cereri de o întrerupere linii. pentru moderne
platformă, este, desigur, un pic, dar utilizarea tehnologiei IRQ Sharing,
permite mai multe dispozitive pentru a partaja o singură linie IRQ,
retrograda problema în fundal. La primul nivel, în timp ce luați
decizia de a trece la o nouă realizare a subsistemului de întrerupere a fost de sprijin
Sisteme multiprocesor (inclusiv
Multi-Core
Hyper-Threading System). În astfel de sisteme, interprocessor interacțiune
bazat pe IPI întrerupere (inter-procesor de întrerupere). transmisă
de la un procesor la altul. De asemenea, complicat algoritmul de arbitraj: Acum
nu trebuie doar să aleagă cea mai mare cerere de prioritate IRQ din mai multe
active simultan, dar, de asemenea, de a alege cel mai puțin procesor de prioritate, care
Acesta va fi trimis la această solicitare, deoarece logic întrerupe puțin
Procedura de importantă. Priorități procesoare schimbat în mod dinamic, în conformitate cu
prioritățile, procedurile efectuate de acestea. Pentru a rezolva aceste probleme au fost dezvoltate
Arhitectura APIC (Advanced Programmable Interrupt Controller). a venit
pentru a înlocui Intel 8259. Controlerul, de asemenea, a evoluat tehnologia MSI
(Message semnalizate Interrupts). pe baza transferului de cereri de întrerupere
nu linii dedicate de semnal, și cicluri în memorie (mesaje) Record.
Desigur, înregistrarea nu este utilizat în memoria principală, și înregistrează APIC,
situat în spațiul de memorie.

Bit "vechi" timer (16 biți) și rezoluția (1 / 1.193 MHz
= 838 ns) nu sunt îndeplinite cu cererile de astăzi. există, de asemenea, o
necesitatea unei gestionări mai flexibilă a generării de întrerupere. Prin urmare, a fost
proiectat timer HPET (High Precision Event temporizator). în detalii
luate în considerare în acest articol.

Notă. Termenul HPET este sinonim învechit - sau TSM
Multimedia Timer.

Despre domeniu

HPET sau High Precision eveniment temporizat situat fizic în
a "Southbridge" chipset-ul. Gama model de chipset-uri Intel, timer-ul HPET
mai întâi a apărut în chip ICH5, folosit ca un „pod de sud“
Intel 865 chipset, 875, 848. Numărul de model de chipset-uri AMD, primul cronometru HPET
Ea a apărut în 8111 cip (Hyper-Transport I / O Hub), care face parte din
chipset-ul AMD8000 (cronologic primul chipset pentru platforma AMD64).

memorie mapate I / O (MMIO)

Să ilustrăm acest lucru cu un exemplu. Să presupunem că avem nevoie pentru a controla registru
un dispozitiv este setat la „1“ bit 7, lăsând biți rămași fără
modificări. În cazul în care registrul este localizat în spațiu IO, necesită trei
instrucţiuni:

În cazul în care registrul este localizat în spațiul de memorie, doar o singură instrucțiune:

Dar ce se întâmplă în cazul în care se aplică această tehnologie la citirea registrului de stare
un dispozitiv? Să presupunem că programul nostru se așteaptă ca ciclul de instalare biți
disponibilitatea în registrul de stare:

WB (write-back) - permite toate acțiunile pentru a optimiza
performanță: cache, citire-înainte și scrie-spatele. uzual
Acest statut este atribuit regiunilor unde există RAM (RAM).

WT (Write-through) - permite toate acțiunile pentru a optimiza
performanță, cu excepția intrării amânată. Atunci când se lucrează cu regiunea în
evenimentul în memoria de înregistrare, procesorul trebuie să actualizeze imediat datele din memoria cache și
RAM. Acest lucru este diferit de statutul de starea write-back la
care datele sunt actualizate în cache și intrarea în RAM are loc „într-un convenabil
caz „, atunci când autobuzul este liber, atunci când linia este forțat să iasă din cache-ul cu date noi sau
atunci când forțat curățarea cache.

UC (memora în cache) - interzis caching și toate acțiunile destinate
pentru a crește productivitatea. Pentru regiunile de memorie care au acest statut,
procesorul efectuează numai acele operațiuni care sunt menționate în mod explicit în program.
Se interzice orice „inițiativă“ din partea procesorului de a schimba bitul
cicluri de autobuz și ordinea executării acestora. Acest statut este atribuit regiunilor,
care sunt registrele de control și starea diferitelor dispozitive (MMIO,
Memorie mapate I / O), permite menținerea protocolului de comunicație cu dispozitivul
la nivelul ciclurilor de autobuz, în forma în care a fost scris de programator.

Detalii în [5], [10], [14], [15], [16].

Privit în acest articol HPET temporizator folosește MMIO, înregistrează
situat în spațiul de memorie, este una dintre diferențele de timer-ul „vechi“
Intel 8254 folosind porturile 0040h-0043h. Așa cum sa arătat mai sus, regiunea
memorie conținând MMIO ar trebui să aibă statut poate memora în cache. Atribuirea acestui
starea (de exemplu, MTRR de programare) efectuează BIOS-ul în timpul pornirii platformei.

surse de informații

Documentele electronice sunt disponibile pe site-ul
developer.intel.com.

1) IA-PC HPET (High Precision Event cumularzi) Specificații. 1.0a Revizia.
2) Intel 64 și Manualul IA-32 Arhitecturi Software Developer. Volumul 1: Basic
Arhitectura. Număr comandă 253665-023US.
3) Intel 64 și Manualul IA-32 Arhitecturi Software Developer. Volumul 2A:
Instruction Set de referință, A-M. Număr comandă 253666-023US.
4) Intel 64 și Manualul IA-32 Arhitecturi Software Developer. Volumul 2B:
Set de instrucțiuni de referință, N-Z. Număr comandă 253667-023US.
5) Intel 64 și Manualul IA-32 Arhitecturi Software Developer. Volumul 3A:
Ghidul de programare al sistemului, Partea 1. Numărul comenzii 253668-023US.
6) Intel 64 și Manualul IA-32 Arhitecturi Software Developer. Volumul 3B:
Ghidul de programare al sistemului, Partea 2. Numărul comenzii 253669-023US.
7) Intel 915G / 915P Express Chipset foaie de date. Numărul documentului 301467-001.
8) Intel I / O controler Hub 6 (ICH6) Foaie de date de familie. Numărul documentului
301,473-001.

Documentele electronice sunt disponibile pe site-ul
developer.amd.com.

9) Manualul AMD64 Arhitectura programatorului. Volume 1: Application Programming.
Publicația nr 24592.
10) Manualul AMD64 Arhitectura programatorului. Volumul 2: programare de sistem.
Publicația nr 24593.
11) Manual de AMD64 Arhitectura programatorului. Volumul 3: scop general și Sistem
Instrucțiuni. Publicația nr 24594.
12) Manualul AMD64 Arhitectura programatorului. Volumul 4: 128-Bit Media
Instrucțiuni. Publicația nr 26568.
13) Manualul AMD64 Arhitectura programatorului. Volumul 5: 64-Bit Media și X87
Instrucțiuni plutitoare-punct. Publicația nr 26569.
14) BIOS și Kernel Ghidul dezvoltatorului pentru AMD Athlon 64 și AMD Opteron
Procesoare. Publicația nr 26094.
15) Ghidul dezvoltatorului Kernel pentru AMD NPT de familie 0Fh procesoare BIOS și.
Publicația nr 32559.
16) Ghidul Kernel Dezvoltatorului (BKDG) pentru procesoarele AMD 10h de familie BIOS și.
Publicația nr 31116.

Documentele electronice sunt disponibile pe site-ul
pcisig.com.

17) PCI BIOS Specificații. Revizia 2.1.

Documentele electronice sunt disponibile pe site-ul
acpi.info.

18) Configurație avansată și interfață de alimentare Caietul de sarcini. Hewlett-Packard
Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies
Ltd. Toshiba Corporation. Revizia 3.0.

Arată acest articol unui prieten: