Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programare și securitate la nivelul arhitecturii x86

Similar presentations


Presentation on theme: "Programare și securitate la nivelul arhitecturii x86"— Presentation transcript:

1 Programare și securitate la nivelul arhitecturii x86
Prof. dr. ing. Gheorghe Sebestyen Cursul 5. Magistrala PCI, Placi PCI, PCIe Identificarea resurselor din sistem

2 Definire, caracteristici
PCI - Peripheral Component Interconnect PCI Local Bus – magistrala universala (independenta de arhitectura, procesor) pentru conectarea unor interfete de viteza mai mare(.. dar nu foarte mare) Caracteristici: Asigura transfer pe blocuri de date Viteza de transfer Mocteti/s Consum redus (alimentare pe 5V si 3,3V) Magistrala de 64-biti Numar redus de pini (semnale de adrese si date multiplexate) Operatii concurente pe magistrala suport pentru master de magistrala Arbitrare transparenta a magistralei Facilitati de autoconfigurare Facilitati pentru magistrala multi-master

3 Configuratie de magistrare

4 Alta vedere asupra configuratiei de magistrale
CPU are 2 magistrale: Backside bus – pentru cache Frontside bus - pentru restul componentelor Conexiunea intre magistrale – prin bridge-uri Pentru controlul magistralelor – chipset-uri (nord si sud)

5 A treia vedere μP Chipset N S SVGA AGP PCI Mem Net Tastatura Mouse

6 Comparatie intre diferite magistrale
Bus Type Bus Width Bus Speed MB/sec ISA 16 bits 8 MHz 16 MBps EISA 32 bits 32 MBps VL-bus 25 MHz 100 MBps 33 MHz 132 MBps PCI 64 bits 264 MBps 66 MHz 512 MBps 133 MHz 1 GBps

7 Terminologie PCI Initiator sau Mater Target (tinta) sau Slave Agent
Detine magistrala si initiaza transferuri de date Orice initiator trebuie sa fie si o tinta (Target) Target (tinta) sau Slave Este tinta unui transfer de citire sau scriere Agent orice initiator/tinta sau (doar) tinta pe magistrala PCI

8 Semnale pe magistrala PCI
AD[63-0] adrese si date multiplexate C/BE[7-0] – semnale pentru comenzi sau validare date Semnale pentru controlul si confirmarea selectiei sau a transferului (Interface control) Semnale de arbitrare a magistralei REQ, GNT Semnale de sistem CLK, RST Intreruperi INTA, B, C, D De testare? JTAG

9 Detaliere semnale PCI ACK64 # : acknowledge 64-bit transfer
AD31-AD0: 32 address and data pins form the multiplexed PCI address and data bus C/BE3#-C/BE0#: command and byte-enable CLK: PCI clock signal DEVSEL#: device select FRAME: GNT#: grant IDSEL: device select during configuration INTA#, INTB#, INTC#, INTD#: interrurpt signals IRDY#: initiator ready LOCK: defines an atomic access PAR: even parity for AD31-AD0 and C/BE3#-C/BE0# PERR#: parity error

10 Detaliere semnale PCI PRSNT1#, PRSNT2#: indicate that an adapter is installed REQ#: request signal to the bus arbitration unit REQ64#: 64-bit transfer request RST: resets all PCI units SBO#: snoop backoff, indicates a hit to a modified cache line SDONE: snoop done SERR#: system error STOP: target-abort TCK, TDI, TDO, TMS, TRST#: JTAG boundary scan test signals TRDY: target ready 64 bit expansion AD63-AD32: 32 address and data pins form the expansion of the multiplexed PCI address and data bus C/BE7#-C/BE4# PAR64: even parity for the 64bit expansion

11 Tipuri de cicluri de transfer PCI
INTA sequence (0000) special cycle (0001) I/O read access (0010) I/O write access (0011) memory read access (0110) memory write access (0111) configuration read access (1010) configuration write access (1011) memory multiple read access (1100) dual addressing cycle (1101) line memory read access (1110) memory write access with invalidation (1111)

12 Transfer “burst” de citire

13 Transfer “burst” de scriere

14 Alta vedere a unui transfer

15 Semnale pentru controlul unui ciclu de transfer

16 Spatii de adresare pe PCI
Un Target PCI poate contine 3 tipuri de spatii de adresare Spatiu de configurare Contine informatii de baza despre dispozitiv (256 octeti): Permite SO sa programeze dispozitivul cu setari de operare Spatiul de I/E Folosit doar de unele periferice din calculatoarele personale (mouse, tastatura, etc.) Spatiul de memorie Folosit pentru orice altceva

17 Spatiul de configurare
Contine informatii generale despre dispozitiv cum ar fi: producatorul sau tipul dispozitivului Permite functionare Plug-N-Play Registrele adreselor de baza permit plasarea unui agent in mod dinamic in cadrul spatiului de memorie si de I/E O setare a unei linii de intrerupere programabila permite unui driver software sa programeze o placa de PC la pornirea sistemului (fara jumpere) Contine 256 octeti din care: Primii 64 octeti (00h – 3Fh) formeaza headerul standard, predefinit in specificatiile PCI Restul de 192 octeti (40h – FFh) reprezinta un spatiu de configurare definit de utilizator Poate contine de exemplu informatii specifice pentru un anumit tip de placa (interfata) utile pentru driverul placii

18 Statiul adreselor de configurare
Dwords DeviceID 0x1677 VendorID 0x14E4 Class Code Class/SubClass/ProgIF Revision ID Base Address 0 CardBus CIS Pointer Expansion ROM Base Address reserved Base Address 2 Base Address 4 Status Register Command BIST Cache Line Size Subsystem Device ID Vendor ID reserved capabilities pointer Minimum Grant Interrupt Pin Latency Timer Header Type Base Address 1 Base Address 3 Base Address 5 Maximum 0 -1 2 - 3 4 - 5 6 - 7 8 - 9

19 Spatii de adresare pentru un calculator PC
Spatiul de adrese pentru memorie - Accesat prin adrese fizice de memorie de majoritatea instructiunilor ISAx86 Spatiu de intrare/iesire Accesat prin adrese de porturi de instructiuni IN si OUT Spatiu de memorie (4GB) Spatiul de configurare PCI Spatiu de configurare PCI (16MB) Spatiu I/E (64KB) porturile de I/E 0x0CF8-0x0CFF dedicate pentru accesarea spatiului de configurare

20 Accesul la spatiul de configurare PCI
Port pentru adresa spatiului de configurare PCI (32 biti) CONFADD ( 0x0CF8) E N reserved bus (8-bits) device (5-bits) function (3-bits) doubleword (6-bits) 00 Enable Configuration Space Mapping (1=yes, 0=no) Port pentru date in spatiul de configurare PCI (32-biti) CONFDAT ( 0x0CFC)

21 Citirea datei de configurare varianta 1
Pasul 1: scrie adresa dorita (bus, device, function, si dword) cu bitul 31 setat pe 1 (pentru a valida accesul) la portul de adresa al spatiului de configurare Pasul 2: Citeste data dorita de la la portul de date al spatiului de configurare: # citeste campul de tip-header PCI (octetul 2 al dublucuvantului 3) pentru bus=0, device=0, function=0 mov eax, CH ;setup address in EAX mov dx,0CF8H ; setup port-number in DX out dx, eax ; output address to port mov dx, 0CFCH ; setup port-number in DX in eax,dx ; input configuration longword shr eax,16 ; shift word 2 into AL register mov header_type,al ; store Header Type in variable

22 Citirea datei de configurare varianta 2 (pentru sisteme PC)
4k de adrese de I/E intre c000h si cfffh

23 Registre adrese de baza
PRF: Prefetching not possible/prefetching possible Type: Positioning type 00=any 32-bit address, 01=less than 1M, 10=any 64-bit address, 11=reserved AD: Address decoding and expansion ROM deactivated/activated

24 PCI Express Bus Protocol/magistrala serial(a) de tip Point-to-point
x1, x2, x4, x8, x12, x16 or x32 point-to-point Link Codificare diferentiala

25 Sistem PCI Express de cost redus

26 Sistem server PCI Express performant (cost marit)

27 Proprietati ale PCI Express
Protocol bazat pe pachete Latime de banda si frecventa de ceas 2.5 Gbits/sec/lane/direction Codificare pe 8b/10b 250 Mbytes/sec/lane/direction Satiu de adresare Memorie I/O Configurare (extins de la 256 octeti la 4 Kocteti)

28 Tranzactii PCI Express
Transactii memory read / write I/O read / write configuration read / write new transaction type: Message transactions

29 Proprietati PCI Express
Quality of Service (QoS) Intarzieri si latime de banda deterministe Clase de trafic (TCs) TCs diferite clase de trafic traverseaza reteaua PCI cu prioritati diferite Canale virtuale (VCs) Fiecare clasa de trafic este mapata pe un canal virtual separat

30 PCI Express Properties
Administrarea intreruperilor Fire virtuale de intrerupere Managementul puterii/consumului de putere Stari de consum ale unui dispozitiv: D0, D1, D2, D3-Hot si D3-Cold D0 putere maxima/nominala D3-Cold nivelul cel mai scazut de consum. Starile de putere ale liniei: L0, L0s, L1, L2 si L3 Suport pentru “hot plug” Are mod de lucru compatibil PCI

31 PCI Express Topology

32 Memory Read initiat de CPU si tintit catre un punct terminal

33 Nivelele de dispozitiv PCI Express

34 Pachet Transaction Layer


Download ppt "Programare și securitate la nivelul arhitecturii x86"

Similar presentations


Ads by Google