Formate Logice de Memorie DRAM - PDF
Document Details
Uploaded by WinningRealism5948
Universitatea Politehnica din București
Tags
Summary
Acest document descrie formatele logice și fizice de memorie, inclusiv DRAM, SRAM, cache și metode de acces la memorie. De asemenea, se explorează concepte precum localizarea spațială și temporală a datelor în cache, ratele de succes și eșec, precum și reînnoirea datelor. Documentul discută, de asemenea, conectarea cache-ului la procesor, depunerea în memorie a rezultatelor, ratări de cache și ROM.
Full Transcript
Formate logice de memorie DRAM SDRAM: operează sincron cu uP, superscalar EDRAM: rată mare de umplere a memoriei cache, multitasking CDRAM: cache pe fiecare chip MDRAM: date stocate într-un număr de bancuri de memorie separate RDRAM: magistrale de mare viteză, cache de RAM static, citire rapidă DDR...
Formate logice de memorie DRAM SDRAM: operează sincron cu uP, superscalar EDRAM: rată mare de umplere a memoriei cache, multitasking CDRAM: cache pe fiecare chip MDRAM: date stocate într-un număr de bancuri de memorie separate RDRAM: magistrale de mare viteză, cache de RAM static, citire rapidă DDR SDRAM: transferă date pe ambele fronturi de ceas DDR2 SDRAM: lucru cu magistrala de 2 ori mai rapid, se lucrează cu jumătate din frecvența de ceas DDR3 SDRAM: lucru cu magistrala de 4 ori mai mare, consum redus de energie, crește lărgimea de bandă, senzor temperatură, pin de reset, tehnologie FlyBy în loc de stea DDR4 SDRAM: reduce consumul energiei XDR RAM: succesor pentru RDRAM PDRAM: integrată în același chip cu uP Forate logice la memorie SRAM: IT-SRAM: capacitate mare, arie mică, consum redus IT-SRAM_M, IT-SRAM-R, IT-SRAM-Q ODR2 SRAM: citire/scriere simultană Formate fizice de memorie: DIP: clasic, se rup pinii SOJ: mai modern, terminale în formă de J TSOP: SMD mic, pentru laptop BGA: mai mare, biluțe de cositor - conduc bine SIMM: un rând de pini, single/double sided SODIMM: de 2 ori mai mic ca SIMM ca dimensiune, laptop SIPP: un SIMM cu pini ascuțiți, nu se prea folosește, echivalent cu SIMM DIMM: capacități mari, 2 rânduri de pini RIMM: ca DIMM, are radiatoare pe ambele părți, folosit pentru memoria Rambus Metode acces la memorie: paginare - asigură o citire mai rapidă: acesta transmite cipului de memorie nu adresa datei cerute, ci adresa unei pagini care conţine informaţia dorită şi, în cadrul paginii, adresa datei solicitate întreţesere - procesorul desfăşoară o activitate paralelă de accesare pentru două bancuri de memorie *dezavantaj: nu mai este timp de refresh între două citiri consecutive şi se vor introduce una sau două stări de aşteptare ale procesorului (wait states) Memoria Cache: internă/primară (plasată în capsula uP, foarte rapidă datorită plasării lângă uP, e SRAM) externă/secundară (e SRAM, mai mare decât cea internă) ➔ de dimensiune mai mică decât cea a memoriei RAM ➔ de tip static (SRAM), pentru a evita operaţia de refresh ➔ rapidă, cu timp de acces mic: tA = 100/fP (fP este frecvenţa procesorului); ➔ apropiată de procesor, plasată între CPU şi memoria principală (RAM) ➔ organizată pe principiul localizării: spaţiale sau pe vecinătăţi (cache nears) temporale ➔ mapată pe blocuri de dimensiune fixă, adresate pe linii (cache lines) ➔ divizată în: cache primar/intern (L1, L3) cache secundar/extern (L2, L3) ➔ cu performanţa exprimată prin: rata de succes (hit rate) rata de eşec (miss rate). Mapare cache: mapare directă C = A mod L C = numărul liniei din memoria cache A = adresa din memoria principală L = numărul de linii din memoria cache mapare asociativă maparea asociativă pe seturi L=IxJ K = A mod I maparea pseudo-asociativă Eficienţa şi localizarea datelor în memoria cache Localizare spațială: dacă este nevoie de unele date, în curând va fi nevoie probabil de date aflate în apropierea lor în memorie Locație temporală: când s-au găsit anumite date, foarte adesea acestea vor fi folosite de mai multe ori Eficienţa unei memorii cache se măsoară în procentajul de găsiri ale datelor: H = 1- M H (rată de succes = hit rate) M (rată de eșec = miss rate) T = TH x H + TM x M TM (timp pierdut = miss time) TH (timp de citire din mem cache = hit time) T (timpul mediu de acces la memoria cache) Reînnoire date: RW (Random Write) sau de rescriere aleatorie: datele conţinute sunt rescrise aleator, fără a folosi un anumit criteriu sau algoritm care să determine care bloc de date va fi rescris; FIFO (First In – First Out) primele blocuri de date scrise în memorie sunt rescrise primele; LRU (Least Recently Used) datele folosite cel mai puţin recent; blocurile de date care, temporal, nu au fost folosite timp de cel mai lung interval sunt rescrise primele, cele accesate de curând fiind păstrate LFU (Least Frequently Used) datele folosite cel mai puţin frecvent; blocurile de date care, statistic, au fost folosite cel mai rar sunt rescrise primele, cele folosite mai des fiind păstrate clock second chance Conectarea cache la uP: ➔ lock through (arială) P-RAM prin intermediul cache cererile sunt întârziate de cache magistrala de memorie nu este ocupată la fiecare cerere ➔ lock aside (paralelă) se adresează în paralel și la chace și la memorie se elimină intermediarul magistrala memoriei e tot timpul folosită la multitasking întârzie mult Depunerea în memorie a rezultatelor Bitul V - citire (este un bit de validare a blocului) Bitul D (dirty data) - scriere (este pus pe 0 la încărcarea iniţială a blocului în cache) 1. metoda Write Through: traseul invers al citirii datelor: blocurile sunt depuse mai întâi în memoria cache internă, apoi în cache-ul extern şi în final în memoria RAM 2. metoda Write Back: dacă adresa la care se scrie este în cache, atunci se scrie în cache, altfel se scrie în RAM direct 3. metoda Posted Write: se crează un buffer în cache unde se pun blocuri ce urmează să fie scrise în RAM, când se eliberează magistrala Ratări cache: 1. obligatorii (pierderi cauzate de primele referiri la date) 2. de capacitate ( pierderi care privesc asociativitatea sau mărimea blocurilor, făcute numai de blocurile finite din cache) 3. de conflict (pierderi care ar putea fi evitate dacă cache-ul ar elimina o intrare mai târziu) ROM (Read Only Memory) = memorie nevolatilă scrisă de producător, nu poate fi modificată/rescrisă prin metode conventionale accesibile utilizatorului comun Performanţele datorate caracteristicilor tehnologice: bipolară – viteză de procesare mare, putere disipată ridicată, densitate de integrare scăzută MOS – densitate de integrare ridicată, viteză de procesare mai scăzută decât la bipolară, putere disipată relativ scăzută CMOS – putere disipată foarte scăzută şi viteză de procesare mare. În alegerea unui circuit integrat de memorie, trebuie să se aibă în vedere tensiunea de alimentare; capacitatea modul de organizare (lungimea cuvântului, semnalele de control şi adresă) puterea disipată (în regim de funcţionare sau în regim de rezervă stand-by) timpul de acces timpul de ciclu memorie disponibilitatea şi preţul de cost Sisteme software ROM: 1. Sistemul cu program starter sau ROM-ul de start, adică microcodul cu rol de asistare şi control al pornirii sistemului 2. ROM-BIOS (Basic Input Output System) este o parte a memoriei ROM care va asigura toate procesele şi serviciile necesare activităţii calculatorului 3. ROM-Basic este un program opţional, care conţine nucleul limbajului Basic 4. Extensiile ROM reprezintă un sistem care conţine anumite rutine necesare gestiunii dispozitivelor ataşate Principalele funcţii ale programelor de pe placa de bază sunt: POST - autotestarea la punerea sub tensiune rutina de încărcare a sistemului de operare (bootstrap loader) – iniţiază căutarea sistemului de operare pe discurile disponibile sistemul de bază pentru operaţii de intrare-ieşire (BIOS) – este interfaţa soft sau programul principal de control pentru toate componentele hard ale sistemului Memorii nevolatile şi comparaţie cu memoria RAM: Variantele uzuale de memorii nevolatile sunt: ROM (Read-Only Memory) – nu poate fi modificată sau ştearsă (este produsă în fabrică); PROM (Programmable ROM) – poate fi programată o singură dată, prin ardere (foloseşte fuzibili); EPROM (Erasable PROM) – poate fi programată şi ştearsă prin radiaţii ultraviolete (azi se mai produce doar în versiuni ieftine); EEPROM (Electrically EPROM) – poate fi programată prin impulsuri în loc de radiaţii ultraviolete şi reprogramată pe loc (fără a mai fi scoasă din soclu); Memoria flash – variantă de EEPROM, care poate fi ştearsă pe blocuri şi rescrisă pe loc FPGA (Field-Programmable Gate Arrays) = reţelele de porţi programabile prin câmp = memorie nevolatilă = cipuri care conţin logică programabilă AVANTAJ: noile circuite hardware pot fi construite în ore, timpul scurt de proiectare Cipul FPGA conţine 2 componente de bază, care sunt replicate de mai multe ori: dicţionarele LUT (Look-Up Tables) interconexiunile programabile Organizarea dispozitivelor I/O la calculatoare mari Magistrale: MM – magistrala memoriei; MD – magistrala de date; MI/O – magistrala de intrare/ieşire. Când microprocesorul central trebuie să efectueze o operaţie I/O cu un anumit periferic, el cedează această operaţie procesorului asociat perifericului; microprocesorul central transmite canalului informaţia necesară pentru realizarea operaţiei de I/O şi îi cere acestuia să o execute. Canalul realizează operaţia I/O în mod complet şi autonom: procesorul I/O execută un program de transfer al datelor cu parametrii primiţi de la microprocesorul central; când transferul între periferic şi memorie a fost încheiat, procesorul I/O anunţă microprocesorul central despre efectuarea transferului Prezenţa celor trei magistrale este specifică calculatoarelor mari. MM permite canalelor I/O să citească sau să scrie date direct din/în memorie MI/O asigură comunicaţia între microprocesorul central şi canalele I/O MD permite microprocesorului central să schimbe informaţii cu memoria Organizarea dispozitivelor I/O la microcalculatoare Microcalculatoarele sunt construite dintr-o placă de bază pe care se află microprocesorul, circuitele de memorie şi circuitele de I/O Cu ajutorul conectorilor, la această placă de bază se pot lega circuite suplimentare (plăci adiţionale), de exemplu plăci de comunicaţie. Conectorii reprezintă ieşiri ale magistralei unice a sistemului. Fiecare unitate periferică are următoarele părţi: circuite electronice de control a unităţii (controler – dispozitiv hard care realizează interfaţa calculator-periferic, guvernat de un program special, numit driver); unitate periferică propriu-zisă (unităţi de disc, tastatură, mouse, joystick, tabletă digitizoare, imprimantă, cameră digitală, scanner, modem etc.). Controlerul de periferic se prezintă sub forma unei plăci adiţionale conectate la magistrala sistemului prin conectorii de magistrală. Există însă şi unele excepţii, aceasta nefiind o regulă generală. Un controler poate scrie sau citi în/din memorie fără intervenţia microprocesorului (acesta realizează o operaţie DMA – Direct Memory Access). Mai există arbitrul de magistrală (bus arbitrer), necesar în situaţia în care apar procese concurente. Astfel, când microprocesorul cere acces la magistrală simultan cu alte cereri de magistrală, apare o problemă: pe magistrală se poate transmite un singur cuvânt la un moment dat. Arbitrul de magistrală analizează cererile şi acordă accesul doar unui singur dispozitiv (stabileşte priorităţile). În general, accesul la magistrală se acordă mai întâi perifericelor, şi nu microprocesorului (microprocesorul are o flexibilitate mai mare decât perifericele). Conectarea perifericelor la sistem După cum s-a văzut, majoritatea calculatoarelor de tip PC compatibile IBM conţin o placă de bază dotată cu sloturi prin care se cuplează plăcile de extensie, respectiv, porturile seriale sau paralele, pentru conectarea altor dispozitive. Din punct de vedere fizic, legătura între sistemul de calcul şi periferice este realizată prin interfaţa de intrare-ieşire (I/O). Dispozitivele de intrare-ieşire sau echipamentele periferice (EP) au, în general, o structură proprie, independentă de structura calculatorului la care se conectează. Cuplarea acestor echipamente la un sistem de calcul presupune adaptarea semnalelor specifice fiecărui echipament la semnalele de pe magistrală şi reglarea fluxului de date între calculator şi periferic. Rolul interfeţelor I/O este de adapta particularităţile unui dispozitiv I/O la cerinţele unui anumit sistem de calcul. Sub acest aspect, o interfaţă I/O este structurată pe două niveluri: un nivel adaptat semnalelor şi modului de funcţionare al magistralei; un nivel adaptat particularităţilor funcţionale ale dispozitivului I/O. Primul nivel conţine registre I/O (porturi) pentru date, comenzi şi stare, direct adresabile de CPU. Al doilea nivel este responsabil cu generarea semnalelor de comandă şi cu achiziţia semnalelor de stare specifice unui anumit tip de dispozitiv periferic. Structura acestui nivel diferă mult de la un dispozitiv I/O la altul, în funcţie de tipul perifericului. O interfaţă I/O conţine următoarele blocuri componente: registre de date (de intrare şi/sau de ieşire); registre de comenzi registre de stare decodificator dispozitiv de comandă Registrele de date O interfaţă poate asigura transferul de date într-un singur sens sau în ambele. Pot exista mai multe canale de intrare, de ieşire sau bidirecţionale. Pentru fiecare canal şi pentru fiecare sens se alocă un port (registru) de date, care ocupă o anumită adresă în spaţiul de adrese I/O al CPU. Registrele de comenzi Au rolul de a genera semnalele specifice unui anumit echipament. Prin registrele de comandă pot fi selectate modurile de lucru ale interfeţei sau se pot fixa parametrii de transfer (transfer pe octet sau pe bloc, frecvenţa de transmisie, formatul datelor transmise etc.). Registrele de stare Oferă informaţii despre starea echipamentului şi a interfeţei. Blocul de selecţie Generează semnalele de validare a porturilor pentru operaţiile de scriere şi citire. La selecţie, se utilizează semnalele de comandă pentru citire/scriere de la/la periferic Dispozitivul de comandă Este un circuit secvenţial sau combinaţional, utilizat în cazul unor interfeţe mai complexe, care controlează funcţionarea celorlalte componente ale interfeţei. Pentru anumite tipuri de interfeţe există circuite specializate de control, numite controlere. Interfaţa poate să conţină şi o memorie ROM sau RAM. Memoria ROM păstrează driver-ul de interfaţă, care este identificat la iniţializarea sistemului şi este inclus în rutinele sistemului de operare. Memoria RAM este utilizată ca buffer între memoria principală şi periferic. Necesitatea acesteia apare în cazul fluxurilor mari de date, situaţie în care sincronizarea perifericului cu frecvenţa de transfer de pe magistrală devine dificilă Transmisia paralelă Transmisia paralelă este mai eficientă, prin faptul că se desfăşoară simultan pentru 8 biţi, pe 8 căi diferite. Transferul unui grup de octeţi are loc cu o viteză considerabilă, dar are dezavantajul costului ridicat al instalaţiei fizice, care presupune existenţa a 8 fire şi a unei interfeţe paralele aparte. De aceea, această transmisie se foloseşte la echipamentele care vehiculează volume mari de date într-un interval de timp foarte scurt. Configuraţia porturilor paralele Configuraţia porturilor paralele nu este tot atât de complicată ca aceea a porturilor seriale. Chiar şi calculatorul original IBM PC are suport BIOS pentru trei porturi LPT, iar sistemul DOS l-a avut, de asemenea, întotdeauna. Deoarece BIOS şi DOS au definit de la început trei porturi paralele, problemele cu sistemele mai vechi sunt puţin frecvente. Acestea pot totuşi să apară din lipsa disponibilităţii unor porturi comandate prin întreruperi la sistemele cu magistrală ISA. Transmisia serial Transmisia serială este mult mai simplă deoarece nu necesită decât o cale de transmisie, un octet transmiţându-se bit cu bit (de aceea este folosită la comunicaţiile între diverse sisteme de calcul obişnuite). În plus, costurile echipamentelor sunt foarte mici. Dezavantajul rezidă în viteza de transmisie, practic de zece ori mai mică faţă de cea paralelă. Este totuşi transmisia folosită cel mai des, fiind fiabilă, ieftină şi simplu de întreţinut. Porturile seriale sunt folosite la transmisia bidirecţională şi dispun de 9 pini. Unităţile de măsură folosite sunt: la transmisiunea paralelă: B/s (octeţi pe secundă) la transmisiunea serială: b/s (biţi pe secundă) Configuraţia porturilor seriale De fiecare dată când un port serial primeşte un caracter, el trebuie să atenţioneze calculatorul activând o linie de întrerupere (IRQ). Sistemele cu magistrală ISA pe 8 biţi au 8 asemenea linii, iar cele cu magistrală ISA pe 16 biţi au 16 linii Standarde pentru transmisii seriale Pentru a conecta între ele prin intermediul porturilor seriale două sau mai multe calculatoare aflate la distanţe destul de mari, nu mai este indicat să se folosească un cablu de reţea, deoarece ar rezulta un preţ destul de mare şi ar apărea probleme de transmisie a semnalelor. Conectarea se poate realiza totuşi cu ajutorul liniilor telefonice sau a cablului optic. În cazul primei soluţii, este nevoie de un dispozitiv care să realizeze adaptarea la linia de telefon, şi anume, de un modem. Standarde de modulaţie Modulaţia este metoda de alocare a unui semnal fizic variabil în timp pentru mesajul logic care urmează a fi transmis pe canalul de comunicaţie cu zgomot Cele mai uzuale metode de modulaţie digitală sunt modulaţia în amplitudine (MA) – Amplitude Shift Keying (ASK); modulaţia în frecvenţă (MF) – Frequency Shift Keying (FSK); modulaţia în fază (MP) – Phase Shift Keying (PSK); modulaţia binară – Binary Phase/BiPhase Shift Keying (BPSK); modulaţia în cuadratură (MQ) – Quadrature Phase Shift Keying (QPSK); MA în cuadratură – Quadrature Amplitude Modulation (QAM); modulaţia impusurilor în cod (MIC) – Pulse Code Modulation (PCM). Standarde de corecţie a erorilor Corecţia erorilor se referă la posibilitatea pe care o au unele modemuri evoluate de a identifica erori în timpul transmisiei (EDC – Error Detection Codes) şi de a retransmite automat datele care par a se fi deteriorat în tranzit (tehnici ARQ – Automatic Repetition reQuest). Ca operaţia de corecţie să funcţioneze, ambele modemuri trebuie să adere la acelaşi protocol de corecţie a erorilor (ECC – Error Correction Codes). Standardele de compresie a datelor Compresia datelor se referă la o posibilitate intrinsecă a unor modemuri moderne de a comprima datele pe care le transmit, făcând astfel economie de timp, spaţiu de stocare şi costuri pentru utilizatorii de modemuri aflaţi la distanţe mari. Algoritmii de compresie utilizaţi fac parte din familia metodelor fără pierderi (lossless data compression). Tipuri de transmisii După modul de folosire a liniei de comunicaţie, transmisiile se clasifică în: transmisii simplex, la care partenerii de comunicaţie au rolurile fixe de emiţător şi receptor (de exemplu: transmisia radio, transmisia TV) transmisii semiduplex, care se efectuează pe aceeaşi linie de legătură între două componente, în ambele direcţii, dar nu concomitent (de exemplu: transmisia prin walkie-talkie) transmisie duplex, la care partenerii de pe aceeaşi linie de transmisie pot folosi simultan linia la propriile transmisii, în ambele direcţii, soluţie mult mai eficientă decât cea anterioară (de exemplu: linia telefonică) transmisia sincronă în care grupurile de 8 biţi se transmit fără folosirea unor biţi fanion sau a unor pauze de transmisie interoctet, fiind cel mai rapid şi eficient mod de transmisie transmisia asincronă un mod mai simplu, deoarece între octeţii transmişi sunt intercalate pauze sau se folosesc biţi fanion (unul sau doi), care indică începutul unui octet (biţi de start) şi sfârşitul acestuia (biţi de stop). Privind această problemă de comunicaţie intersisteme, se constată că sunt necesare trei tipuri de interfeţe-translator care pot asigura comunicaţia între două lumi diferite (cea analogică şi cea digitală) sau în cadrul aceleiaşi lumi. Aceste interfeţe traduc semnalele astfel: analog-digital. Este interfaţa clasică, utilizată ca poartă de intrare a informaţiilor din mediul înconjurător în mediul digital. digital-analog. Este complementară interfeţei analog-digitale, venind în completarea sistemului de comunicaţie şi asigurând bidirecţionalitatea schimbului de informaţii cu mediul. digital-digital. Interfeţele standard utilizate în cadrul unui sistem de calcul sau între sisteme sunt de tip digital-digital. Ele primesc/transmit acelaşi tip de semnal, digital, şi au ca scop sincronizarea dispozitivelor care comunică, prin transformarea semnalului transmis într-un semnal corect interpretabil de către dispozitivul receptor. Interfeţe seriale RS-232 Una dintre cele mai uzuale interfeţe seriale asincrone folosite este RS-232 (Reference Standard 232). Activitatea esenţială a acesteia este adaptarea semnalului transportat la cerinţele receptorului, activitate denumită comunicaţie asincronă. În interfaţa RS-232, datele sunt trimise sub formă de şiruri de biţi, fiind suportat atât modul sincron cât şi cel asincron. Pe lângă circuitele de date, standardul defineşte un număr de circuite de control care supervizează conexiunea dintre DTE (Data Terminal Equipment) şi DCE (Data Circuitterminating Equipment) Fiecare circuit de date sau control funcţionează doar într-o singură direcţie. Pentru că datele transmise şi datele recepţionate folosesc fiecare câte un circuit separat, interfaţa poate funcţiona în mod duplex UART UART = Circuitele integrate folosite ca interfaţă asincronă pentru transmisia serial În componenţa lor intră registre de deplasare (shift), prin intermediul cărora datele în format serial/paralel pot fi convertite în format invers, paralel/serial. Un UART tipic are trei secţiuni: un modul receptor, care primeşte de la periferic un semnal serial şi îl converteşte paralel, după care îl depune pe magistrala de date; un modul emiţător, care primeşte semnal paralel de pe magistrala de date şi îl converteşte în semnal serial pentru periferic; un controler de interfaţă, care gestionează activitatea modulelorreceptor şi emiţător ACIA Un model similar de interfaţă universală asincronă este ACIA, instalată în blocul de mapare a memoriei şi care recepţionează 4 linii de adrese, 3 selecţii de cip şi o selecţie de registru. Funcţionarea ACIA are la bază două registre de deplasare (unul de tip readonly şi celălalt, write- only) pentru convertirea semnalelor paralel/serial şi serial/paralel. Comunicaţia cu magistrala de date se face prin intermediul unui buffer de date, cuplat direct la aceasta. Un exemplu tipic de interfaţă ACIA este modemul IEEE 1394 (FireWire) FireWire este numele înregistrat de Apple pentru standardul IEEE1394, fiind o specificaţie de magistrală serială, care asigură comunicaţii de mare viteză şi servicii de date în timp real. Interfaţa FireWire suportă conectarea simultană a 63 de periferice. FireWire este bazată pe comunicaţia punct-la- punct, ceea ce permite, de exemplu, ca o imprimantă şi un scanner să comunice între ele fără a încărca suplimentar procesorul şi magistrala sistemului. Standardul fizic de conectare se prezintă în două forme – o mufă de 6 pini şi una de 4 pini. Singura diferenţă între acestea este faptul că doar mufa de 6 pini poate alimenta dispozitive externe, mufei de 4 pini lipsindu-I conexiunile necesare pentru aceasta USB Interfaţa USB (Universal Serial Bus) a înlocuit interfeţele RS-232 şi paralelă în multe situaţii. Astfel, USB este acum cea mai folosită interfaţă în conectarea imprimantei, mouse-ului sau scanner-ului la calculator. USB a fost proiectată pentrua permite conectarea dispozitivelor periferice printr-un conector standardizat, care să înlocuiască multitudinea de conectori ai unui calculator şi să îmbunătăţească funcţionalitatea plug’n’play, permiţând dispozitivelor să fie conectate şi deconectate fără a fi necesară repornirea calculatorului. De asemenea, dispozitivele care consumă puţin pot fi alimentate direct prin interfaţa USB. Toate calculatoarele actuale sunt echipate cu porturi USB, care au înlocuit (aproape) complet ceilalţi conectori standard. USB conectează mai multe dispozitive la un HCI (Host Controller Interface), prin intermediul unor hub-uri. USB este complet controlat de HCI. Nu poate exista decât un singur host pe o magistrală la un moment de timp. Cablul USB foloseşte 4 fire două pentru putere: (tensiunea VBUS şi masa) şi două pentru semnalele de date (pinii D+ şi D–). Alimentarea VBUS este, în general, de 5V (cu o toleranţă prestabilită), iar modul de transmisie a datelor este diferenţial Există trei tipuri de alimentare posibile, în funcţie de diversele dispositive ataşate: de putere mică (low power) – pot lua un curent de 100 mA de la sursa de alimentare (pinul VBUS); de putere mare (high power) – pot lua un curent între 100 mA şi 500 mA de la VBUS; cu auto-alimentare (self power) – pot lua un curent de 100 mA de pe magistrală şi se mai pot alimenta de la o sursă externă Interfeţe paralele IEEE 1284 Standardul IEEE 1284 defineşte o comunicaţie paralelă bidirecţională între calculatoare sau alte dispozitive, oferind o bandă maximă teoretică de 4 Mb/s, şi poate funcţiona în cinci moduri: Compatibility Mode (Centronics) – foarte asemănător modului unidirecţional original Centronics; Nibble Mode – foloseşte liniile de stare pentru a recepţiona date de la imprimantă (pentru transferul extins de stare al imprimantei); Byte Mode – se transmit 8 biţi concomitent, folosind liniile de date; Enhanced Parallel Port (EPP) – este o arhitectură semiduplex bidirecţională, care permite dispozitivelor să transmită cantităţi mari de date (pentru scanner-e sau dispozitive de stocare); Extended Capability Port (ECP) – similar EPP-ului, poate oferi o bandă de până la 2,5 Mb/s PIA Cel mai uzual model de interfaţă utilizat este PIA (Peripheral Interface Adapter). Cipul standard folosit este 6821 PIA cu 40 de pini. Interfaţa foloseşte două registre, unul pentru datele transmise de la periferic la microprocesor şi celălalt pentru sensul opus. Când perifericul transmite un octet de date de-a lungul celor opt linii către sistem, datele sunt depuse într-un registru PIA unde vor aştepta până când microprocesorul este pregătit pentru preluarea lor. După efectuarea citirii acestui octet stocat, procesul se repetă pentru următorul octet Pentru transmisii în sens invers, procesorul va transmite un octet de-a lungul magistralei de date către cipul I/O, care le va depozita într-unul din aceste registre. Când perifericul este în stare ready, va transmite un semnal către PIA, care îi va pune la dispoziţie datele, apoi procesul se reia. Interfaţa prezintă două porturi I/O bidirecţionale (A şi B) pe câte 8 biţi, cu comandă individuală a sensului datelor. Transferul datelor se face folosind un protocol automat de tip handshake. Interfaţa este prevăzută cu două ieşiri de întrerupere comandate software Interfeţe wireless Bluetooth Tehnologia Bluetooth reprezintă un set de specificaţii bazate pe undele radio, pentru o reţea wireless personală, PAN (Personal Area Network). Tehnologia Bluetooth creează o cale prin care se poate face schimb de informaţii între aparate precum telefoane mobile, laptopuri, calculatoare personale, imprimante, camere digitale şi console video, printr-o frecvenţă radio sigură şi de rază mică. Aparatele Bluetooth comunică între ele atunci când acestea se află în aceeaşi rază de acţiune. Ele folosesc un sistem de comunicaţii radio, astfel încât nu este nevoie să fie aliniate faţă în faţă pentru a transmite, putând fi plasate chiar în camere diferite dacă transmisia este suficient de puternică. Implementările Bluetooth din versiunile succesive aduc creşterea vitezei de transfer, reducerea consumului de energie şi introducerea de noi facilităţi. Un dispozitiv Bluetooth de tip master poate comunica simultan cu alte maximum 7 dispozitive. Acest grup de 8 dispozitive se numeşte reţea de tip piconet. Dispozitivele Bluetooth se conectează prin intermediul unui proces numit pairing. Astfel, se stabileşte o legătură între dispozitive pe baza unei parole (passkey). Wi-Fi Wi-Fi, prescurtarea de la Wireless Fidelity, reprezintă o categorie de produse compatibile cu standardele WLAN (Wireless Local Area Networks) bazate pe protocoale IEEE 802.11 Spre deosebire de alte sisteme radio, Wi-Fi foloseşte un spectru de frecvenţe radio care nu are nevoie de licenţă şi nu necesită aprobare de utilizare. Se permite dezvoltarea variată a unei reţele locale WLAN fără utilizarea cablurilor, reducând costurile necesare dezvoltării reţelei şi evitând diferite obstacole în implementarea reţelei Multe reţele Wi-Fi suportă roaming, permiţând unui client să se mute dintr-un punct de acces în altul în aceeaşi clădire sau zonă geografică. Wi-Fi este un standard global, clienţii Wi-Fi putând lucra în diferite ţări de pe glob Gestionarea tranzacţiilor I/O Transferuri DMA (Direct Memory Access) Folosirea DMA duce la creşterea vitezei sistemului prin degrevarea procesorului de controlul transferurilor de date I/O, accesul la memorie fiind efectuat de către placa de extensie I/O, fără supraveghere continuă. Când este vorba despre DMA, se face practic referire la transferurile de date (şi la controlul acestora) între memorie Zşi porturile I/O (definite şi ca puncte de cuplare a extensiilor periferice la sistem). Dar dacă procesorul nu mai este interogat asupra acelor activităţi, atunci de controlul şi securitatea lor se ocupă un dispozitiv numit controler DMA care suportă, în cazul PC-XT, patru canale (DMA0DMA3), putând gestiona până la patru procese simultane de transfer de date. Calculatoarele dotate cu procesoare de la 80386 în sus dispun de încă patru canale DMA pe 16 biţi (numite HDMA), gestionate de un al doilea controler de tipul i8237A Un transfer DMA constă din următoarele faze: 1. iniţializarea transferului; 2. transferul efectiv de date; 3. verificarea terminării şi a corectitudinii transferului. În faza de iniţializare, CPU înscrie în registrele interne ale controleruluiDMA adresa de început a blocului de memorie implicat în transfer şi numărul de octeţi transferaţi, precizând sensul de transfer În faza de transfer al datelor au loc mai multe cicluri de transfer sub supervizarea controlerului DMA. În cadrul unui ciclu se transferă un cuvânt de date. În faza de verificare se realizează un control de paritate sau CRC. În cazul PC-urilor, transferul DMA se utilizează pentru interfaţa de floppy disk şi pentru transferul serial pe bloc. Un canal DMA (canalul 0) este utilizat pentru operaţia de reîmprospătare (refresh) a memoriei dinamice. Sunt simulate periodic cicluri de citire a memoriei. nu trebuie folosite, practic, aceleaşi canale DMA pentru două dispozitive periferice diferite. Canale IRQ (Interrupt Request) Întreruperile hardware sunt gestionate de un cip de genul i8259. Logica procesului de cerere de întrerupere (Interrupt Request) constă din conectarea funcţională la sistem a unei şi optimizarea transferurilor de date şi informaţii către/de la microprocessor dinspre/spre acele extensii. În acest mod, se eliberează microprocesorul de sarcina cronofagă de a urmări activitatea perifericului în cauză. Un canal IRQ este sistemul de transmisiune folosit de componentele sistemului pentru a semnala o cerere de intrare în acţiune. Controlerul de întreruperi integrat Intel APIC (Advanced Programmable Interrupt Controller) este un circuit mai recent, folosit pentru gestionarea întreruperilor. Arhitectura Intel APIC este una din cele mai cunoscute arhitecturi APIC şi înlocuieşte deja cipul 8259A în PC-urile 86. Este o arhitectură constituită din până la 8 APIC-uri locale. Un APIC local se ocupă de servirea unui procesor cu întreruperi Într-un sistem monoprocesor, APIC poate înlocui total un controler extern, de tip i8259. Funcţionarea unui canal IRQ este următoarea: placa periferică instalată lansează către microprocesor un semnalInterrupt imediat, microprocesorul abandonează temporar acţiunea pe care o întreprinde la acel moment şi transmite perifericului un mesaj de recepţie, denumit Interrupt Acknowledg sistemul de operare execută o rutină specială, care are ca sarcină salvarea stării microprocesorului se citeşte din tabela vectorilor de întrerupere (TVI) o adresă la care se află numărul canalului de întrerupere cerut; prin citirea adresei din TVI, se dă controlul rutinei-driver de la adresa citită, rutină care răspunde de activitatea dispozitivului care a emis semnalul IRQ; rolul final al rutinei sistemului de operare este să refacă starea microprocesorului, încărcând registrele salvate anterior, moment din care sistemul revine la starea şi procesul desfăşurate anterior semnalului IRQ. ADRESA DE IN-OUT Intel x86 are un spațiu de mem. special pentru stocare adr. de in-out: mem. nesegmenltată 64KB/32KB (8b/16b) aceste spații de memorie = mici porți de mem. folosite ca punți de comunicație, setate cu grijă să nu se suprapună PROIECTAREA UNUI SISTEM I/O obiective de cost, dependențe, performanță PAȘI PROIECTARE: 1. enumerarea diferitelor tipuri de dispozitive I/O care se vor conecta la sistem sau a magistralelor standard pe care le suportă sistemul 2. enumerarea cerințelor fizice pentru fiecare dispozitiv I/O, cerințele incluzând dimensiunea, puterea, conectorii, sloturile disponibile pe magistrală etc. 3. luarea în calcul a costului fiecărui dispozitiv I/O, incluzând costul controlerului necesar pentru dispozitivul respectiv 4. luarea în calcul a fiabilității fiecărui dispozitiv I/O, precum şi a cerințelor de memorie şi de ocupare a magistralei I/O de către fiecare dispozitiv I/O în parte; 5. estimarea performanței şi a disponibilității diferitelor modalități de organizare a dispozitivelor I/O, pentru ca în final să se aleagă cea mai bună organizare 6. înregistrarea cererii de acces a fiecărui dispozitiv I/O la resursele CPU: NIVELUL FIZIC fundamentul calculatorului, are ca suport circuitele şi porțile logice Categorii de circuite integrate logice (combinație porți logice încapsulate în circuit) SSI (Small Scale Integration) – circuite cu integrare redusă MSI (Medium Scale Integration) – circuite cu densitate medie de integrare LSI (Large Scale Integration) – circuite cu înaltă densitate de integrare VLSI (Very Large Scale Integration) – circuite cu înaltă densitate de integrare SVLSI (Super Very Large Scale Integration) – circuite cu foarte înaltă densitate de integrare\ Microprocesorul Microprocesorul reprezintă inima unui sistem de calcul. Privit din punct de vedere fizic, el este un circuit care prezintă câteva zeci sau chiar sute de terminale. Semnalele de comunicaţie asociate acestora îi permit microprocesorului să facă schimb de informaţii cu mediul extern, în principal cu circuite de memorie sau cu circuite de intrare-ieşire. Există patru categorii de semnale electrice externe ale microprocesorului: de adresă de date de comandă de stare Un microprocesor care are m linii de adresă poate adresa până la 2m cuvinte de memorie Întreruperile Întreruperile sunt schimburi în fluxul de control, care nu sunt cauzate de programul care se execută, ci de alte cauze, aflate de obicei în legătură cu operaţiile I/O. Un concept cheie al întreruperilor este transparenţa. Când apare o întrerupere, se execută câteva acţiuni şi un fragment de cod anumit, dar când servirea întreruperii s-a terminat, calculatorul trebuie să se întoarcă în aceeaşi stare pe care a avut-o înainte de întrerupere. O procedură de tratare a întreruperii cu această proprietate se spune că este transparentă Gestionarea întreruperilor Dacă unitatea centrală (UC) a cerut unui circuit de I/O efectuarea unei operaţii, aceasta anunţă sfârşitul operaţiei printr-o întrerupere. Într-un sistem real, mai multe dispozitive pot cere simultan întreruperi. Este deci necesar un sistem de gestionare a cererilor de întrerupere O modalitate curentă de soluţionare a cererilor simultane de întrerupere este de a asigna niveluri de prioritate diferite pentru diversele dispozitive şi de a utiliza un circuit arbitru pentru gestionarea acestor cereri. Controlerul de întreruperi conţine un număr de registre interne care pot fi citite sau scrise de către UC cu ajutorul semnalelor RD (Read), WR (Write), CS (Chip Select) şi A0 (linia 0 de adresă). Toate aceste semnale, la fel ca INT şi INTA, sunt active pe zero. Prin intermediul registrelor, UC comunică controlerului de întreruperi disponibilitatea de a trata o nouă cerere de întrerupere sau poate programa controlerul să funcţioneze într-un mod particular, de exemplu să mascheze întreruperile pe o anumită intrare Magistrala În modelul maşinii von Neumann, comunicaţia dintre componentele sistemului se realizează prin legături dedicate între perechi de componente. Această abordare este relativ rigidă, limitând drastic scalabilitatea a sistemului Conceptual, magistrala este un mediu comun de comunicaţie între componentele unui sistem de calcul; fizic, este alcătuită dintr-un set de linii de semnal care facilitează transferul de date şi realizează sincronizarea între componentele sistemului. Prin standardizarea magistralelor, sistemele de calcul au devenit deschise, în sensul că un număr mai mare de producători au avut posibilitatea să realizeze componente pentru o anumită structură de calculator se pot distinge două clase de magistrale: magistrale de sistem – dezvoltate mai ales pentru conectarea unităţii centrale la celelalte componente de bază ale sistemului (de exemplu: MultiBus, ISA, EISA, PCI); magistrale specializate – care încearcă să optimizeze transferul de date cu un anumit tip de echipamente periferice (de exemplu: VESA, AGP, SCSI, GPIB). Elemente definitorii ale magistralei O magistrală se compune dintr-un set de semnale şi un set de reguli constituite într-un protocol, care guvernează transferul de informaţii şi accesul la mediul de comunicaţie. În sens clasic, o magistrală se compune din următoarele tipuri de semnale: Semnale de date – sunt semnale bidirecţionale utilizate pentru transferul de date şi instrucţiuni. Semnale de adresă – sunt utilizate pentru specificarea adresei modulului destinaţie sau sursă de date, numărul de linii de adresă determinând spaţiul maxim de adresare permis de magistrală Semnale de comandă – sunt semnale unidirecţionale generate de CPU utilizate pentru specificarea direcţiei de transfer şi a tipului de modul adresat Semnale de control – sunt semnale de utilizate pentru reglarea condiţiilor de transfer al datelor Semnale de întrerupere – sunt generate de un controler dedicat, permit semnalizarea unor evenimente interne sau externe şi implicit determină întreruperea execuţiei programului curent. Semnale de tact (de ceas) – sunt generate de un oscilator cu cuarţ, fiind folosite la sincronizare şi la generarea unor semnale de frecvenţă programabilă. Linii de alimentare – sunt generate de sursa de tensiune a sistemului, fiind folosite pentru alimentarea modulelor sistemului. Semnale de control al accesului – sunt utilizate pentru arbitrajul şi controlul accesului pe magistrală magistrale sincrone – la care ciclurile de transfer sunt direct corelate cu semnalul de tact. Viteza de transfer este mai mare, însă rata de transfer a magistralei este limitată de frecvenţa tactului. Datorită vitezei limitate de propagare a semnalului electric, creşterea ratei ar duce la diferenţe de fază la capetele magistralei. magistrale asincrone – la care nu există o legătură directă între evoluţia în timp a unui ciclu de transfer şi tactul sistemului. Majoritatea magistralelor actuale lucrează pe acest principiu (de exemplu: ISA, EISA, MultiBus etc.). magistrale unimaster – există un singur modul master pe magistrală. Nu necesită mecanisme de arbitraj al magistralei magistrale multimaster – permit conectarea mai multor module master pe acelaşi tronson de magistrală. Magistrala trebuie să conţină semnale de arbitraj şi un protocol de transfer al controlului pe magistrală I. Magistrale procesor-memorie: între procesor şi memorie specializate scurte rapide II. Magistrale I/O: Magistralele I/O necesită o interfaţă simplă şi adesea standardele lor sunt asociate cu tipurile de conectare la periferice, la reţea sau la adaptoarele pentru alte standarde, pot avea multe dispozitive I/O conectate (direct sau prin canale I/O supervizate de procesoare specializate) universale lungi mai lente decât magistralele procesor-memorie nu sunt legate direct la memorie, ci prin magistrale procesor-memorie ori magistrale de fundal (backplane) III. Magistrale backplane (originar folosite la placa de bază): Magistralele backplane necesită o logică suplimentară la interfaţă. În schimb, avantajul magistralelor backplane este că acestea conţin singure toate conexiunile. permit acces simultan la procesor, memorie, dispozitive I/O sunt reutilizabile (bune pentru diverse configuraţii) Magistrala procesorului Magistrala procesorului este calea de comunicaţie între CPU şi cipurile cu care lucrează direct. Această magistrală este folosită pentru a transfera date, de exemplu între CPU şi memoria cache externă. Magistrala procesorului este calea de comunicaţie între CPU şi cipurile cu care lucrează direct. Această magistrală este folosită pentru a transfera date, de exemplu între CPU şi memoria cache externă. Conectarea la magistrală Majoritatea circuitelor logice nu dispun la ieşire de amplificatoare capable să furnizeze puterea necesară transmiterii unui semnal binar pe liniile magistralei Magistrale sincrone Din punctul de vedere al cadenţei schimbului de date care are loc pe magistrală există arhitecturi sincrone şi asincrone. Magistrala sincronă dispune de o linie de ceas comandată de un oscilator cu cuarţ. Toate operaţiile de pe o magistrală sincronă sunt efectuate într-un număr întreg de perioade de ceas. Avantaj: funcţionarea este relativ simplă. Dezavantaje: 1. orice operaţie pe magistrala sincronă corespunde unui număr întreg de perioade de ceas, ceea ce conduce la o funcţionare suboptimă din punct de Vedere al vitezei de lucru 2. magistrala sincronă evoluează dificil odată cu procesul tehnologic de realizare a componentelor, datorită faptului că prin utilizarea unor memorii de viteză mai mare nu se poate reduce durata unei operaţii de citire-scriere până când nu este modificată frecvenţa ceasului care guvernează magistrala. Concluzie. Pentru a conecta în mod optim un ansamblu de circuite la magistrală, este preferată arhitectura asincronă. Magistrale asincrone În cazul magistralei asincrone, nu este necesară existenţa unui semnal de ceas care să supervizeze transferul. Deci, durata unei operaţiuni pe magistrală este variabilă, în funcţie de performanţele circuitelor utilizate. Cu alte cuvinte, înlocuirea memoriei cu una mai rapidă (cu timp de acces mai mic) se va resimţi proporţional în scurtarea ciclului de transfer pe magistrală. Transferul datelor pe magistrala locală a procesorului Tranzacţiile pe magistrala locală a procesorului, PLB (Processor Local Bus), constau în mai multe faze de adresare şi date. În funcţie de nivelul de activitate a magistralei şi capacitatea slave PLB, acestea pot dura unul sau mai multe cicluri de magistrală PLB. Arbitrajul magistralei Până acum s-a considerat că există un singur master pe magistrală. În realitate, adesea există mai multe dispozitive I/O care pot cere simultan accesul la memorie, ceea ce conduce la necesitatea introducerii unor reguli de arbitraj. Arbitrajul magistralei se poate realiza în două variante: structura centralizată, în care există fizic un arbitru; structura descentralizată, în care fizic nu există un arbitru de magistrală, dar care implementează funcţiile acestuia. Structura centralizată Algoritmul cu priorităţi statice (daisy chain). Se presupune existenţa a 5 dispozitive I/O care cer simultan accesul la magistrală prin linia BUS REQUEST, iar arbitrul le răspunde prin linia de acordare a magistralei (BUS GRANT). Circuitele I/O care pot deveni master sunt legate printr-un SAU cablat la linia de cerere de magistrală BUS REQUEST. Când cel puţin unul dintre circuite cere accesul la magistrală, arbitrul este sesizat, iar când este posibil (când magistrala este liberă) acesta acordă accesul la magistrală printr-o linie de acordare a magistralei (BUS GRANT), astfel încât arbitrul nu vede decât o singură cerere, chiar dacă mai multe circuite cer accesul Prioritatea la daisy chain scade de la stânga spre dreapta Algoritmul cu cereri independente. Acest algoritm reprezintă cel mai general caz de arbitraj al magistralei, dar din punct de vedere hardware este greu de implementat. Fiecare dispozitiv emite o cerere de bus independentă către arbitru. Acesta răspunde pe linii separate dispozitivelor. Dispozitivul care primeşte răspuns afirmativ poate folosi magistrala. Logica de acordare a magistralei este implementată în arbitru. Notaţiile folosite sunt: BR = linia de cerere de magistrală (BUS REQUEST); BG = linia de acordare a magistralei (BUS GRANT); ACK = linia de confirmare (ACKnowledge) BUS = magistrala Algoritmul cu interogare ciclică (polling). Pentru fiecare dispozitiv există o linie de cerere de magistrală şi o linie de acordare de magistrală. În schemă sunt prevăzute log2m linii de interogare pentru cele m dispozitive. Dispozitivele dispun de câte un decodor pentru a recupera codul de interogare. Dispozitivul care îşi recunoaşte codul de interogare activează semnalul de confirmare ACK (acknowledge) şi preia controlul magistralei. Arbitrul întrerupe ciclul de interogare, până când dispozitivul căruia i s-a acordat magistrala îşiîncheie operaţiile pe magistrală Structura descentralizată În această structură nu există un arbitru veritabil de magistrală (circuit fizic), ci fiecare unitate îşi gestionează singură accesul la magistrală realizând o parte din funcţiile arbitrului. Avantajul este că permite o implementare simplă, iar dezavantajul, că Znecesită mai multe linii, deoarece fiecare unitate recepţionează cele 16 linii. Pentru a obţine accesul la magistrală, o unitate trebuie să verifice îndeplinirea a trei condiţii: 1. dacă magistrala este liberă; 2. dacă semnalul BUS BUSY este dezactivat; 3. dacă linia de arbitraj prezentă la intrarea sa este liberă Algoritmul cu priorităţi dinamice (rotating daisy chain). Acest algoritm reprezintă varianta descentralizată a algoritmului cu priorităţi statice (daisy chain). Pentru algoritmul cu priorităţi dinamice nu mai există arbitru de magistrală. Acest bloc este divizat în subblocuri descentralizate Subblocul conectat cu dispozitivul care a preluat controlul magistralei devine master, modificând astfel „distanţa” dintre dispozitive şi subblocul de arbitraj. Dispozitivul care a preluat controlul magistralei va avea la următoarea cerere de magistrală prioritatea minimă. Magistrala memoriei Magistrala memoriei este utilizată pentru transferul informaţiilor între CPU şi memoria principală – memoria RAM a sistemului. Această magistrală este o parte din magistrala procesorului sau, de cele mai multe ori, este implementată separat cu un set special de cipuri care este responsabil de transferul informaţiilor între magistrala procesorului şi memorie. Magistrala de adrese Magistrala de adrese este o parte a magistralei procesorului şi a celei de memorie. Magistrala unui sistem Pentium are 64 de linii de date, 32 linii de adrese şi câteva linii de comandă. ` Magistrala de adrese este folosită pentru a indica adresa de memorie sau adresa de pe magistrala sistemului care va fi utilizată în cadrul operaţiei de transfer al datelor. Magistrala de adrese indică precis locul în care va avea loc următorul transfer în memorie sau pe magistrală. Dimensiunea magistralei de memorie determină mărimea memoriei pe care unitatea centrală o poate adresa direct. Magistrala I/O Magistrala I/O permite procesorului să comunice cu dispozitivele periferice. Magistrala şi sloturile sale de extensie asociate sunt necesare pentru că nu este posibil ca sistemele de bază să satisfacă toate necesităţile tuturor celor care le achiziţionează. Magistrala I/O permite adăugarea de dispozitive calculatorului pentru a-i extinde posibilităţile. Magistrala ATA SATA (Serial Advanced Technology Attachment) este o magistrală construită în mod special pentru transferul de date între calculator şi echipamente de stocare, cum ar fi hard disk-ul sau unităţile optice. Principalele avantaje faţă de vechile interfeţe Parallel ATA sunt transferurile de date mai rapide, abilitatea de a deconecta sau instala echipamente în timp ce calculatorul este funcţional (hot swapping), cabluri mai subţiri care permit sistemului de răcire cu aer să funcţioneze mai eficient şi operaţii mai sigure cu verificări de integritate ale datelor mai riguroase. SATA este o arhitectură de tip punct-la-punct (point-to-point), ia conexiunea între controler (H – host) şi echipamentele de stocare (D – device, maximum 8 porturi) este una direct Magistrala SCSI Small Computer System Interface (SCSI) este un standard al industriei calculatoarelor ce are rolul de a conecta computerele cu dispozitivele periferice ca: hard disk-uri, driverele CD-ROM, imprimante, scanner-e şi orice alt dispozitiv care trebuie să transfere cantităţi mari de date într-un timp foarte scurt. Standardul SCSI specifică interfaţa hardware şi software la un nivel care minimizează subordonarea faţă de orice altă implementare hardware. Specificaţia permite conectarea unei mari varietăţi de periferice la multe tipuri de calculatoare. Standardul SCSI specifică opt faze distincte pentru magistrala SCSI : 1. Magistrala liberă 2. Arbitrajul 3. Selecţia 4. Reselecţia 5. Comanda 6. Datele 7. Starea 8. Mesajul: Magistrala locală Magistralele I/O prezentate au o latură comună: viteza relativ scăzută. În timp ce viteza magistralei procesorului a crescut, magistrala I/O a cunoscut doar ajustări ale vitezei nominale, în principal prin creşterea lăţimii de bandă. Soluţiile bazate pe magistrala locală nu înlocuiesc standardele existente, ci sunt proiectate pentru a le îmbunătăţi Magistrala PCI Magistrala PCI (Peripheral Component Interconnect) este numită adesea şi magistrală mezanin, deoarece ea adaugă un alt nivel configuraţiei de magistrală. PCI ocoleşte magistrala standard I/O, folosind magistrala sistemului (pentru a creşte viteza ceasului) şi toate avantajele căilor de date Magistrala PCI lucrează în paralel cu magistrala procesorului, fără să o înlocuiască. Unitatea CPU poate procesa date în memoria cache externă, în timp ce magistrala PCI este ocupată cu transferarea informaţiilor între alte elemente ale sistemului, ceea ce constituie un avantaj major al magistralei PCI. Este proiectată de Intel (fără licenţă) şi înlocuieşte standardul anterior de magistrală ISA (Industry Standard Architecture); CPU şi controlerul de memorie comunică printr-o conexiune dedicată, de mare viteză; PCI este o magistrală sincronă, tranzacţională şi multimaster, la care liniile de date şi de adresă sunt multiplexate. Activitatea magistralei se manifestă sub forma unor transferuri între un iniţiator (I, master) şi o ţintă (T, slave). După ce un master a obţinut controlul magistralei, determină tipul transferului care va urma. În faza de adresare, liniile C/BE informează despre tipul ciclului de magistrală. Magistrala AGP AGP (Accelerated Graphics Port) este o magistrală dedicată comunicării cu display-ul, accesibilă prin intermediul unui slot special, aflat pe placa de bază, în care se montează placa grafică. AGP a fost introdus pentru a degreva magistrala PCI de comunicaţia cu display-ul şi pentru a mări banda transferurilor de date către acesta. AGP dă plăcii grafice posibilitatea de a accesa direct memoria principală, printr-o procedură numită DIME (Direct Memory Execute). Cu DIME, adresarea memoriei se face în pipeline, mod care constă în a lansa mai multe cereri pe durata unui acces la memorie Magistrala serial Magistrala USB Fiecare descriptor de interfaţă are nişte setări implicite şi este posibil să aibă setări alternative de interfaţă (alternate interface settings), care, la rândul lor, au descriptori de enpoint-uri (endpoint descriptors). Un endpoint poate fi totuşi folosit pentru mai multe interfeţe sau setări alternative de interfeţe. Hub-urile sunt elemente cheie în arhitectura plug’n’play a USB, uşurând conectivitatea din punct de vedere al utilizatorului şi asigurând o robusteţe mai mare. Punctele de conexiune ale hub-urilor se numesc porturi. Magistrala FireWire (standardul IEEE 1394) Magistrala FireWire este de fapt o interfaţă serială, tranzacţională, orientate pe pachete de lungime variabilă, audio- video, de mare viteză. fost văzută ca magistrală specializată pentru conectarea tuturor echipamentelor electrocasnice: TV, DVD, scanner, cameră web, PC. Toate transmisiile de date FireWire sunt de tip pachet şi pot fi clasificate în două categorii: asincrone şi isocrone, magistrala fiind de tip tranzacţional. Transmisiile asincrone sunt garantate la recepţie şi au nevoie de un semnal de confirmare de la receptor. Ele sunt transmisiuni unipunctuale (unicast). Transmisiile isocrone sunt garantate în timp, cu o lărgime de bandă specifică, rezervată pentru ele în magistrala serială. Magistrala I2C Magistrala I2C (Inter-Integrated Circuits) a fost dezvoltată de firma Philips pentru comunicaţia între diferite microcontrolere şi controlere I/O. Este o magistrală bidirecţională simplă, care utilizează două fire, unul pentru datele seriale, SDA (Serial Data), şi unul pentru ceasul serial, SCL (Serial Clock) Fiecare dispozitiv conectat la magistrală este recunoscut printr-o adresă unică şi poate funcţiona fie ca receptor fie ca transmiţător şi receptor Magistrala Fibre Channel comunicatii intre statii de lucru, servere care utiliz protocoale SCSI, IP. Are caract canal com traditional, simplu, perf bune, furnizari garantate, este repr de 2 fibre unidirect, viteza pana la 256 Gbs. Magistrala InfiniBand rezolva pb de larg de banda si suprasarc a mag PCI, arhit trecand de la traditional la fabric, conecteaza 2 sau m multe noduri(care repr o gazda sau disp I/O), legat seriala pct-pct, larg banda 50 Gbs-1200Gbs Magistrala PCI Express Necesitatea schimbării magistralei a apărut ca o cerinţă firească, având în vedere că vechiul PCI, cu limita sa de viteză de transfer de 133 MB/s, nu mai putea face faţă necesităţilor actuale ale calculatoarelor. Arhitectura PCI Express Fiecare dintre cele două conexiuni unidirecţionale în parte poate transporta 250 Mb. Un semnal de tact poate fi integrat în transferuri, pentru a regla viteza de transfer. Arhitectura acestei generaţii de magistrală se bazează pe straturi (layer), ca şi cele utilizate de protocolului TCP/IP Nivelul fizic defineşte specificaţii electrice, mecanice, procedurale şi funcţionale pentru activarea, menţinerea şi dezactivarea legăturilor fizice între sisteme şi este alcătuit dintr-o interfaţă serială de mare viteză, numită Low-Voltage Differential Signaling (LVDS) Nivelul legăturilor de date este responsabil cu transmiterea corectă a datelor printr-o legătură fizică existentă, între două puncte conectate direct prin această legătură fizică. Nivelul transport este responsabil cu crearea pachetelor care vor fi expediate şi cu citirea pachetelor primite. Nivelul software (aplicaţie) este situat cel mai aproape de utilizator, oferind servicii de reţea aplicaţiilor utilizator. PCI Express vs. PCI Lărgimea de bandă disponibilă între două puncte nu este partajată, astfel încât, atât la un singur periferic PCI Express cât şi la trei, fiecare are la dispoziţie aceeaşi lărgime de bandă. La nivelul cipsetului, magistrala PCI Express este gestionată de un switch care gestionează conexiunile punct-la-punct, înainte de ainteracţiona cu restul sistemului PCI Express diminuează consumul de energie când slotul nu este active Sintetizând, diferenţele majore ale arhitecturii PCIe faţă de arhitectura PCI sunt: switch centralizat vs. magistrală multimaster; conexiuni seriale punct la punct vs. magistrală paralelă de lăţime mare, cu defazaje (skew); transfer de pachete între dispozitive vs. transfer de (blocuri de) cuvinte prin comenzi master-slave; grad de siguranţă oferit de aplicarea codurilor corectoare de erori la pachete; conexiunile cip-switch sunt mai lungi (50 cm), oferind posibilitatea partiţionării; sistemul este extensibil, un dispozitiv putând deveni la rândul său un switch; posibilitatea de hot plugging şi hot swapping; conectorii seriali sunt mai mici, de unde rezultă posibilitatea de miniaturizare (pentru sisteme portabile şi mobile). NIVELUL MICROPROGRAMAT executarea unei instrucţiuni presupune efectuarea într-o anumită ordine a unor paşi elementari, care se numesc microoperaţii şi microinstrucţiuni. Microprogramarea este un concept care formează, de fapt, interfaţa între limbajul de asamblare şi structurile fizice ale procesorului. Microinstrucţiunile sunt semnalele de comandă adresate de unitatea de control către unitatea de execuţie a procesorului. Microinstrucţiunile O microinstrucţiune cuprinde mai multe părţi, numite câmpuri, fiecare definind o funcţie proprie. O instrucţiune cuprinde 4 subcicluri de execuţie (se foloseşte un ceas cu 4 faze): 1. încărcarea microinstrucţiunii care trebuie executată într-un registru particular, denumit registru microinstrucţiune, RMI; 2. transferul conţinutului registrelor selecţionate pe magistralele A, B şi încărcarea datelor în RTA şi RTB; 3. realizarea operaţiilor ALU şi ale registrului shift; dacă este necesar, RAD este încărcat de la ieşirea registrului tampon B; 4. încărcarea datelor de la ieşirea registrului shift în registrul selecţionat şi/sau în registrul RDA. Unitatea de comandă Unitatea de comandă preia codul în limbaj de asamblare şi comandă calea de date prezentată anterior. Componentele sale sunt descrise în continuare. Memoria de microprogram se mai numeşte memorie de comandă (există însă diferenţe între memoria de program şi cea de microprogram). Memoria de microprogram este o memorie foarte rapidă, care conţine instrucţiuni microprogramate. Pentru majoritatea micromaşinilor, memoria de microprogram este de tip read-only, existând şi varianta utilizării memoriei de tip read- write, ceea ce confer posibilitatea modificării dinamice a programului. Micromaşina cu format vertical Microinstrucţiunea verticală tipică conţine un câmp, numit codul operaţiei (care poate fi văzut ca o generalizare a câmpului ALU), şi mai multe câmpuri de operanzi, de exemplu: A, B, C. Pentru a clarifica distincţia între microprogramul orizontal şi cel vertical, se va revizui micromaşina mA modificată, utilizând de această dată microinstrucţiuni verticale. Fiecare nouă microinstrucţiune va cuprinde trei câmpuri de 4 biţi, deci un total de 12 biţi, faţă de 32 de biţi la versiunea precedentă. Nanoprogramarea permite, în unele cazuri, o asociere optimă între microprogramul orizontal şi cel vertical Astfel, nanoprogramarea corespunde unei optimizări statistice a microprogramului, în cazul în care un set de instrucţiuni este mai des solicitat. Conceptul de paginare Paginarea este procedeul de realizare în memorie a unor blocuri fixe, numite pagini, care pot fi utilizate în mecanismul interschimbării proceselor Ideea este de a face distincţia între capacitatea de adresare fizică a sistemului, care defineşte un spaţiu de memorie, denumit memorie virtuală, şi capacitatea de memorie instalată în sistem, denumită memorie fizică sau reală. O singură pagină de 4 KB se poate afla la un moment dat în memoria principală (MP) sau în memoria fizică. Dacă programul conţine mai multe pagini, restul paginilor se află undeva în memoria secundară (pe hard disk). Spre deosebire de procesul de segmentare, paginarea este transparentă programatorului, fiind realizată de sistemul de operare Realizarea unei paginări simple In mod normal, în memoria fizică instalată se pot afla mai multe pagini active Dimensiunea paginii cu care operează procesorul Intel, echivalentă de fapt cu dimensiunea blocurilor de memorie cu care se lucrează, este, de obicei, de 4 KB. Se presupune că există o capacitate de adresare fizică de 64 KB (adică, 16 linii de adresă). Se împarte acest spaţiu în pagini de câte 4 KB (blocuri), rezultând astfel 16 pagini. Se mai presupune că memoria fizică instalată este de 32 KB. Adresa fizică este pe 16 biţi şi, dacă se urmăreşte folosirea memoriei paginate, se poate considera că cei mai semnificativi 4 biţi reprezintă numărul paginii, iar cei mai puţin semnificativi 12 biţi reprezintă deplasamentul în cadrul paginii. Avantajele paginării pot fi rezumate astfel: mărimea fixă a paginilor intră corect într-un sector al unui disc; un obiect în memorie nu trebuie să fie continuu: pagina poate constitui o nouă „cuantă” de informaţie; mecanismul paginării şi, implicit, întreaga tehnică de a schimba continuu blocuri fixe de informaţii între memoria internă şi cea externă nu sunt vizibile utilizatorului. Politica de înlocuire a paginilor Într-un calculator care foloseşte memoria virtuală, sistemul de operare trebuie să stabilească următoarele politici de gestionare: politica fetch: stabileşte momentul în care o pagină trebuie adusă în memorie. paginarea la cerere: aduce o pagină în memorie doar ca rezultat al excepţiei page fault (eroare de pagină). pre-paginarea: încearcă să anticipeze şabloane de utilizare a memoriei în viitor şi să aducă paginile în memorie înainte ca cererile de accesare să fie emise. politica de plasament: stabileşte unde să fie puse paginile sau segmentele aduse în memorie. politica de înlocuire: dacă memoria este complet ocupată, când intervine o excepţie page fault Algoritmii de înlocuire intră în acţiune atunci când sistemul de operare primeşte semnalul de page fault (eroare de pagină), prin care se înţelege că pagina solicitată nu se află în memoria fizică, ci pe disc. La primirea acestui semnal, algoritmul de înlocuire a paginii are sarcina de a muta pe disc o pagină existentă în memoria fizică, pentru a face loc paginii care va fi copiată de pe disc. Paşii care sunt parcurşi pentru tratarea excepţiei page fault sunt următorii: 1. aplicaţia accesează o pagină care nu este prezentă în memoria fizică; 2. apare excepţia page fault; 3. este aleasă o pagină goală (un cadru de pagină); 4. dacă nu este găsită nici o pagină goală, este aleasă una care urmează a fi evacuată din memoria virtuală, această alegere fiind făcută pe baza unor algoritmi de înlocuire; 5. dacă pagina a fost modificată, aceasta este mai întâi scrisă pe disc; 6. pagina necesară este citită de pe disc; 7. pagina este mapată spaţiului de adrese al aplicaţiei; 8. este reluată execuţia aplicaţiei. Algoritmii de înlocuire pot fi locali sau globali. Când apare semnalul de page fault, algoritmii de înlocuire locali selectează pagini care aparţin aceluiaşi proces, în timp ce algoritmii globali pot selecta orice pagină din memorie. Algoritmul optim de înlocuire (Belady) Algoritmul optim de înlocuire, cunoscut şi sub numele de algoritmul lui Belady, este un algoritm de înlocuire care funcţionează după următorul principiu: când o pagină trebuie copiată de pe disc în memorie, sistemul de operare mută, din memorie pe disc, conţinutul paginii care va fi folosită în proces cel mai târziu, făcându-i loc noii pagini. De exemplu, o pagină care nu va fi folosită în următoarele 10 secunde va fi mutată din memorie pe disc înaintea unei pagini care va fi folosită în următoarele două secunde. Acest algoritm este unul teoretic, el neputând fi implementat în sistemele de operare, deoarece nu se poate şti exact cât va dura până când va fi folosită o pagină din memorie. Algoritmul Not Recently Used (NRU) Algoritmul NRU (nefolosit recent) este un procedeu de înlocuire a paginilor care au fost folosite de curând. Pentru fiecare pagină existentă în memorie, intrarea din tabelul de pagini conţine doi biţi de stare: R (referred) – este pus în 1 pentru o pagină ori de câte ori acea pagină este accesată (la citire sau la scriere), pagina fiind acum marcată referită; M (modified): – este pus în 1 pentru o pagină atunci când acea pagină este modificată. Aceşti biţi trebuie actualizaţi la fiecare referire a memoriei. Iniţial, ei sunt puşi în 0. Odată pus în 1, un bit rămâne în aceeaşi valoare până când este resetat explicit de către sistemul de operare. Periodic, bitul R este pus în 0. Algoritmul First-In First-Out (FIFO) Algoritmul de înlocuire FIFO (primul intrat, primul ieşit) elimină pagina care a fost încărcată prima, indiferent de momentul în care această pagină a fost referită ultima dată. Fiecare pagină are un contor, care este iniţial egal cu 0 pentru fiecare cadru de pagină. Pagina care tocmai a fost adusă în memorie va avea valoarea contorului egală mereu cu 0, următoarea va avea valoarea 1 (înainte ca pagina cu indexul 0 să fie adusă în memorie pagina aceasta avea contorul egal cu 0, dar a fost incrementat cu 1) ş.a.m.d. Practic, se creează un fenomen de îmbătrânire a paginilor, cea mai „tânără” pagină având contorul cu valoarea 0. Când o pagină trebuie eliminată, se va alege mereu cea cu valoarea cea mai mare a contorului. Algoritmul Second Chance (SC) Second Chance (a doua şansă) este un algoritm de înlocuire a paginilor inspirat din FIFO, dar care are performanţe mult mai bune decât acesta din urmă, diferenţa de preţ fiind una foarte mică. Funcţionează verificând pagina cu contorul având cea mai mare valoare, dar în loc de a o extrage ca în algoritmul FIFO, Second Chance îi acordă o a doua şansă paginii, verificând dacă are sau nu fixat bitul de referinţă. Dacă acesta nu este setat, algoritmul funcţionează în continuare la fel ca FIFO, mutând pagina din memorie. Dacă bitul de referinţă este setat, atunci contorul paginii este adus la valoarea 0, pagina fiind, practic, inserată din nou în coadă ca şi cum ar fi o pagină nouă. Second Chance este, de fapt, o combinaţie între FIFO şi NRU, care evită neajunsul algoritmului FIFO de a elimina din memorie o pagină utilizată intens: caută o pagină veche, nereferită în perioada anterioară de ceas. Concret, se verifică bitul R al celei mai vechi pagini: dacă R = 0 – pagina este veche şi neutilizată şi este înlocuită imediat; dacă R = 1 – se pune R = 0, pagina este mutată la sfârşitul listei şi procesul de căutare continuă. Algoritmul Clock (C) Clock este un algoritm cu performanţe mai bune decât Second Chance, care merge tot pe principiul FIFO. La fel ca Second Chance, Clock foloseşte biţi de referinţă pentru a da o „a doua şansă” paginii. Îmbunătăţirea adusă de Clock ţine de faptul că nu mai este nevoie să „împingă” paginile în coadă, algoritmul folosind un pointer (indicator) şi un sistem circular al paginilor în loc de coadă. Pointer-ul arată care pagină este cea mai veche şi poate fi înlocuită. Algoritmul Least Recently Used (LRU) Algoritmul Least Recently Used (LRU) – cel mai puţin frecvent utilizată pagină, deşi similar în terminologie cu NRU, diferă prin faptul că LRU urmăreşte paginile într-o perioadă de timp mai scurtă decât o perioadă de ceas, în timp ce NRU urmăreşte paginile într-un interval de ceas. LRU funcţionează pe ideea că paginile folosite cel mai mult în trecutul apropiat vor fi cel mai probabil folosite şi în viitorul apropiat, în cadrul următoarelor câtorva instrucţiuni (principiul localizării temporale), deci elimină pagina neutilizată de cel mai mult timp, fiind o bună aproximare a algoritmului optim (Belady). În aceste cazuri, algoritmul MRU (Most Recently Used) este mult mai eficient. Majoritatea implementărilor LRU încearcă să detecteze aceste cicluri şi să le trateze corespunzător algoritmului MRU. Variante ale algoritmului LRU sunt LRU-K, cunoscut şi sub numele de LRU-2, LRU-1 fiind identic cu LRU, şi ARC. Algoritmul Random (R) Algoritmul de tip Random înlocuieşte aleator o pagină din memorie cu una de pe disc. Acest procedeu elimină costurile suplimentare legate de realizarea unui sistem de monitorizare a referinţelor către o pagină. De obicei, are rezultate mai bune decât FIFO şi, în cazul ciclurilor, chiar rezultate mai bune decât LRU, deşi, în general, LRU se descurcă mai bine în practică. Algoritmul Not Frequently Used (NFU) Algoritmul NFU (pagini nefolosite frecvent) generează mai puţine semnale de tip eroare de pagină (page fault) decât algoritmul LRU când tabelul de pagini conţine mulţi pointer-i cu valori nule. Acest algoritm foloseşte un counter (numărător), fiecare pagină având un astfel de counter de sine stătător. La fiecare interval de ceas, toate paginile referite în acel interval vor avea counter-ul incrementat cu 1. Astfel, cu ajutorul counter-ului se poate determina cât de frecvent a fost folosită o anumită pagină. Pagina cu valoarea cea mai mică a counter-ului va fi selectată pentru a fi mutată pe disc Algoritmul Aging (A) Algoritmul Aging (îmbătrânire) este o versiune îmbunătăţită a NFU, având o viteză de lucru mult mai mare. Modificările îl fac să ţină cont şi de factorul „interval de timp”. În loc ca doar să incrementeze contoarele paginilor apelate, nefăcând nici o discriminare din punct de vedere al intervalului de timp în care numărul de apeluri a contribuit la contorul de frecvenţă, contorul de apel al unei pagini este întâi deplasat spre dreapta (împărţit la 2), înainte ca bitul de referinţă să fie adăugat în partea stângă a numărului binar Algoritmul Working Set (WS) Este un algoritm cu grad mare de generalitate. Working Set reprezintă setul de pagini utilizate de ultimele k apeluri de memorie, iar funcţia w(k, t) este dimensiunea acestui set la momentul de timp t fiind, în mod evident, o funcţie crescătoare. Algoritmul WSClock (Working Set Clock) Algoritmul Working Set Clock (WSClock) este o optimizare a algoritmului Working Set, care foloseşte o listă de pagini circulară (Clock). Conceptul de segmentare Fiecare segment constă dintr-o secvenţă liniară de adrese, de la valoarea 0 la valoarea maximă. Lungimea fiecărui segment poate fi oricât de mare între 0 şi valoarea maximă. Segmente diferite pot să aibă (şi, de regulă, au) lungimi diferite. Mai mult chiar, lungimea unui segment se poate modifica în timpul execuţiei. Lungimea unui segment de stivă poate creşte ori de câte ori se pune ceva în stivă şi poate scădea ori de câte ori se ia ceva din stivă. Segmentarea permite şi partajarea de date sau cod între diferite programe. Dacă un calculator are mai multe programe care rulează în paralel şi care folosesc anumite proceduri de bibliotecă, ar fi o risipă de memorie dacă fiecare program ar avea copia sa proprie. Compactarea O modalitate de a elimina fragmentarea externă este compactarea: ori de câte ori apare o gaură, toate segmentele de după ea vor fi mutate cât mai aproape de locaţia de memorie 0, eliminând acea gaură şi lăsând o singură gaură, mare, la sfârşitul memoriei. Alternativ, se poate aştepta ca fragmentarea externă să devină serioasă (un procent mare din memorie este pierdut în găuri), înainte de a se face compactarea. Scopul compactării este colectarea tuturor găurilor mici şi inutilizabile într-una singură, mare, în care pot fi plasate unul sau mai multe segmente. Compactarea are dezavantajul evident al pierderii de timp cu realizarea ei. Compactarea după apariţia fiecărei găuri este, de obicei, mult prea cronofagă. Algoritmul best fit Un algoritm des întâlnit, denumit best fit (cea mai bună potrivire) alege cea mai mică gaură în care va încăpea segmentul dorit. Ideea este de a găsi potriviri exacte (sau cât se poate de apropiate) între segmente şi găuri, evitându-se astfel preluarea unei porţiuni dintr-o gaură mare, care ar putea fi necesară ulterior unui segment mare. Acest algoritm îşi propune să nu lase în urmă alte găuri sau, dacă nu este posibil, să producă cele mai mici găuri reziduale posibil Algoritmul first fit Alt algoritm frecvent utilizat este first fit (prima potrivire), care parcurge circular lista de găuri şi alege prima gaură suficient de mare pentru a păstra segmentul. Procedând astfel, este evident că timpul de căutare necesar este mai mic decât în cazul căutării în întreaga listă a celei mai bune potriviri, ceea ce reprezintă un avantaj al acestui algoritm. Aceşti ultimi doi algoritmi au tendinţa de a reduce dimensiunea medie a găurilor. Ori de câte ori un segment este plasat într-o gaură mai mare decât dimensiunea sa, ceea ce se întâmplă aproape întotdeauna (potrivirile exacte fiind rare), gaura este divizată în două părţi. O parte este ocupată de segment, cealaltă devine noua gaură reziduală, care desigur că este mai mică decât gaura iniţială. Memoria virtuală la Motorola Din punct de vedere conceptual, utilizarea memoriei virtuale este mai simplă la microprocesorul Motorola 68030, utilizând doar scheme de paginare pură. Cu toate acestea, datorită faptului că schemele Motorola folosesc un număr variabil de niveluri de tabelare (între 0 şi 4), sistemul de operare ar avea de îndeplinit operaţii destul de elaborate. De aceea, majoritatea sarcinilor de gestionare a memoriei sunt preluate de un controlerul MMU (Memory Management Unit Memoria virtuală în sistemele de operare Unix Modelul de memorie virtuală la Unix este destul de simplu. Fiecare process are trei segmente: cod, date şi stivă,. Într-o maşină cu un singur spaţiu de adresă liniară, codul este, în general, plasat la baza memoriei (zona de adrese mici), urmat de datele. Stiva este plasată în partea superioară a memoriei. Memoria virtuală la ARM OMAP4430 Procesorul ARM OMAP4430 este o maşină pe 32 de biţi şi suportă o memorie virtuală paginată, bazată pe adrese virtuale pe 32 de biţi, care sunt mapate într-un spaţiu de adrese fizice pe 32 de biţi. Ca atare, un procesor ARM poate suporta până la 232 octeţi (4 GB) de memorie fizică. Sunt acceptate patru dimensiuni ale paginilor: 4 KB, 64 KB, 1 MB şi 16 MB. Schema generală a micromaşinii este dată în figura 5.6. Notaţiile folosite sunt următoarele: MCO = microcontor (registru de adresare a memoriei de microprogram); INCR = circuit de incrementare (INCR = MCO + 1); MMUX = multiplexor care lucrează în concordanţă cu decizia provenită de la microsecvenţiator, el alegând pentru microinstrucţiunea următoare fie adresa MCO + 1, fie adresa specificată în ADDR. ORGANIZAREA DISPOZITIVELOR DE INTRARE-IEŞIRE (I/O) 2 moduri de organizare a dispozitivelor I/O: pentru arhitectura calculatoarelor mari pentru arhitectura microcalculatoarelor PROCES CALCULATOARE MARI Calculatoare mari = mainframe-uri, supercalculatoare, servere etc MP – memoria principală UC – unitatea centrală Proc. I/O – procesoare I/O sau de canal CT – controler terminale T – terminale; Impr. – imprimantă UD – unităţi de disc (D). Magistrale: MM – magistrala memoriei MD – magistrala de date MI/O – magistrala de intrare/ieşire uP central trebuie să efectueze cu un periferic o operație I/O → cedează această operaţie procesorului asociat perifericului procesorul I/O execută un program de transfer al datelor cu parametrii primiţi de la microprocesorul central, anunţă despre efectuarea transferului OBS: Prezenţa celor trei magistrale este specifică calculatoarelor mari. MM permite canalelor I/O să citească sau să scrie date direct din sau în memorie, MI/O asigură comunicaţia între microprocesorul central şi canalele I/O, iar MD permite microprocesorului central să schimbe informaţii cu memoria (citirea/scrierea datelor, execuţia programelor etc.). PROCES MICROCALCULATOARE UC – unitate centrală M – memorie MON. – monitor KBD – tastatură UDM/O – unitate disc magnetic/optic. Microcalculator = placă de bază pe care se află microprocesorul, circuitele de memorie şi circuitele de I/O → la fiecare placă se leagă plăci adiționale Fiecare unitate periferică are următoarele părţi: circuite electronice de control a unităţii (controler – dispozitiv hard care realizează interfaţa calculator-periferic guvernat de driver) unitate periferică propriu-zisă ! Mai există arbitrul de magistrală (bus arbiter), necesar în situaţia în care apar procese concurente Controler de periferice = placă adițională conectată prin magistrală transmite I/O instrucțiuni și informații necesare, supraveghează accesul poate citi/scrie în memorie fără acceptul microcontrolerului (DMA) procese în același timp → arbitrul de mag. gestionează și acordă accesul doar unui singur disp. Conectarea perifericelor la sistem D.p.d.v. fizic, legătura între sistemul de calcul şi periferice este realizată prin interfaţa de intrare-ieşire (I/O) care este structurată pe 2 niveluri: un nivel adaptat semnalelor şi modului de funcţionare al magistralei un nivel adaptat particularităţilor funcţionale ale dispozitivului I/O Primul nivel conţine registre I/O (porturi) pentru date, comenzi şi stare, direct adresabile de CPU. Al doilea nivel este responsabil cu generarea semnalelor de comandă şi cu achiziţia semnalelor de stare specifice unui anumit tip de dispozitiv periferic Blocuri componente: 1. registre de date (de intrare şi/sau de ieşire) 2. registre de comenzi 3. registre de stare 4. decodificator (bloc de selecţie a registrelor) 5. dispozitiv de comandă 1. Registre de date: o interfață asigură transferul de date într-un singur sens/bidirecțional; pentru fiecare canal: există registru de date (port) 2. Registre de comenzi: specifice pentru fiecare echipament conectat (hard disk - selecție disc); selectează modul de lucru, parametrii de transfer etc 3. Registre de stare: starea echipamentului și a interfeței (disc defect, ocupat etc) 4. Decodificatorul (blocul de selecție): generează semnalul de validare a portului pentru citire/scriere 5. Dispozitiv de comandă (controler): pentru interfețe complexe, controlează funcţionarea celorlalte componente ale interfeţei Interfaţa poate să conţină şi o memorie ROM (păstrează driver-ul de interfaţă) sau RAM (buffer între memoria principală şi periferic) Transferurile de biţi între componente se pot efectua în două moduri: PARALELĂ: ➔ eficientă, simultan, pe 8 căi diferite ➔ cost ridicat (8 fire și interfață specială) configurație: trebuie să se poziționeze jumpere/comutatoare plăci diferite, config/ diferite, 25 pini actual, sistemele au config. automată unitate de măsură: B/s (octeți pe secundă) SERIALĂ: ➔ mult mai simplă (o singură cale, un octet, transmițându-se bit cu bit) ➔ ieftină ➔ viteză mică, de 10 ori mai mică decât cea paralelă, chiar și așa e cel mai utilizată ➔ porturi bidirecționale pe 9 pini unitate de măsură: B/s (octeți pe secundă) și baud (nr semnale el/sec) configurație: portul serial primește un caracter: calculatorul activează o întrerupere (IRQ) dacă se fol. 2 porturi simultan (COM), acestea trebuie să aibă întreruperi opuse standarde: pentru a conectarea prin port serial a 2 calc.: linie tel./cablu optic → e nevoie de dispozitiv pentru adaptarea la linia de tlf. = MODEM Un protocol este o metodă prin care două entităţi diferite se înţeleg să comunice ! standardele modemurilor: 1. de modulație a. în amplitudine (MA) b. în frecvență (MF) c. în fază (MP) d. binară e. în cuadratură (MQ) f. impulsuri în cod (MIC) 2. de corecție a erorilor 3. de compresie a datelor TIPURI DE TRANSMISII SINCRONĂ: grupuri de 8 biți se transmit fără fol. unor biți fanion și fără pauze de transmisie cel mai rapid și eficient gestionată prin semnal adiacent (sincronă) ASINCRONĂ: se fol. biți fanion: înc. unui obiect (biți de start) și sfârșitul unui obiect (biți de stop) se fol. biți de paritate pentru erori densitatea de informație = k/n (nr biți de info/nr biți total) Sist. de calcul comunică cu mediul exterior → 3 tipuri de interfețe - translator: 1. Analog-Digital: tastatură, mouse, cameră video etc 2. Digital-Analog: imprimantă 3. Digital-Digital: între sisteme STANDARDE DE INTERFEȚE I. SERIALE: RS-232 adaptarea semnalului transportat la cerințele receptorului datele sunt transmise cu șiruri de biți sincron/asincron un nr. de circuite supraveghează conexiunea dintre DTE și DCE într-o singură direcție 25 pini, doar 22 folosiți se bazează pe handshake (tehnica acordului confirmat: întrebări-răspunsuri între DTE și DCE) UART interfață asincronă pentru transmisie serială datele în format serial/paralel pot fi convertite între ele 3 secțiuni: receptor (primește de la periferic semnal serial și în depune pe mag. de date) emițător (primește semnal paralel de pe mag. și convertește în serial, îl trans. la I/O controler (gestionează activitatea) convertirea prin reg. shift ACIA interfață univeral asincronă, instalată în blocul de mapare a memoriei 2 reg. de deplasare: read-only și write-only pentru convertire semnal paralel-serial și invers ex: modemul USB înlocuiește RS-232, este cea mai folosită acum conector standardizat, ce înlocuiește multitudinea de conectori ai unui calculator (plug and play) permite ca dispozitivele să fie conectate fără a fi necesară repornirea calculatorului poate și alimenta dispozitivul conectează mai multe dispozitive la un HCI (host) prin intermediul hub-urilor. No poate exista decât un singur host pe o magistrală la un anumit moment de timp un host comunică cu disp. prin canale logice (pipes), ce au niște terminale logice = endpoints 16 endpoints în fiecare direcție → 32 pipe-uri active simultan conexiune: downstream (host-dispozitiv) upstream (dispozitiv-host) 4 fire (V, GND, D+, D-) ∼ 5V (D+/- diferențial) IEEE 1394 (FireWire) înregistrat Apple conec. simultană a 63 periferice prin comunicația punct-la-punct (imprimantă comunică cu scanner-ul fără încărcarea procesorului) ca USB: suportă plug and play (conectare la bus, fără repornire) poate alimenta dispozitive (cazul cu mufa de 6 pini doar, cea de 4 nu) cablul FireWire: 6 fire cupru ( 2 transportă energ. și 4 în perechi de câte 2) II. PARALELE IEEE 1284 veche, azi înlocuită de USB și Ethernet comunicație paralelă, bidirecțională 5 moduri de funcționare: Compatibility, Nibble, Byte, EEP, ECP) multe calculatoare nu mai includ porturi paralele pentru că pot fi înloc. de conectoare USB-paralel PIA cel mai folosit (ex. imprimanta) 2 registre: unul pentru datele transmise de la periferic și unul pe sens opus când perifericul transmite date, acestea sunt depuse într-un registrul PIA unde așteaptă prelucrarea lor de către uC. în sens invers: datele depuse în reg. PIA așteaptă intrarea perifericului în starea ready - semnal transmis se fol. registrul de stare 2 porturi I/O bidirecționale pe 8 biți cu comandă individuală; transfer prin protocol handshake; interfața are 2 ieșiri de întrerupere SW III. WIRELESS BLUETOOTH bazat pe unde radio, pentru o rețea personală PAN se crează o cale prin care se poate face schimb de informație între dispozitive, printr-o frecvență radio sigură și de rază mică nu e nevoie ca dispozitivele să fie față în față, pot fi oriunde în acea arie pairing = conectare prin parolă prevenire interfețe: împarte banda în 79 canale, canalele sunt schimbate cu o viteză mare Master: un dispozitiv bluetooth de tip master poate comunica cu maxim 7 dispozitive rețea Piconet: (masterul și aceste 7 disp.) de tip ad-hoc, care permite unui dispozitiv bluetooth să interacționeze cu alte 7 disp. active (maxim 255 inactive): la un moment dat în timp poate comunica cu un singur dispozitiv activ, dispozitivele își pot schimba rolul în cadrul Piconetului (slave - master) Wi-Fi rețea fără fir, locală, extinsă pe arii limitate standarde WLAN, bazate pe protocoale IEEE 802.11 transfer de date și internet ce folosesc unde radio comparativ cu sisteme radio: spectru de frecvențe radio ce nu au nevoie de licență; costuri reduse (fără cablu); roaming: rețea globală, te poți conecta din mai multe p. de acces GESTIONAREA TRANZACȚIILOR I/O conectarea plăcilor de extensie - periferice fizic, prin plug and play software: pe baza drive-urilor integrare completă: definire și asigurare comunicație generală: rezervăm canal com. (DMA) canale de întrerupere IRQ DMA (Direct Memory Access) accesul la memorie este efectuat de către placa de extensie I/O, fără supraveghere continuă controler DMA se ocupă de control și securitate (4 procese simultan) FAZE: ➔ inițializare transfer:CPU scrie în reg. interne ale controler-ului DMA adr. de început a blocului de mem. folosit, nr. de octeți transferați și sensul; interfața de cerere DRQ către DMA: DMA solicită prin HOLD accesul al magistrală → CPU suspendă activitatea (după terminarea ciclului curent → IRQ) → CPU răspunde la DMA prin semnal HOLD acc (acceptă cerea de cedare a mag.) → DMA preia controlul magistralei ➔ transfer efectiv: cicluri multiple de transfer sub supervizarea lui DMA (ciclu = cuv. de date) ➔ verificare terminare și corectitudine: control de paritate CONTROLER DMA: componente: registre (pt. adr, memorie), numărătoare (selectare canal), reg. de stare, reg. comandă (mod transfer), circuit arbitrare (căi acces), circuit control (magistrală), disp. comandă PC-uri: DMA pentru floppy disk 4 canale DMA (3activitate internă, 1 pentru periferice) NU trebuie folosite aceleași canale DMA pentru 2 dispozitive diferite CANALE IRQ (Interrupt Request) gestionează cererile de întrerupere ( = conectarea unei extensii și optimizarea transferului de date și informații către/de la uP dinspre/spre acea extensie ) canal IRQ = sistem de transmisiune pentru a semnala o cerere de intrare în acțiune nivel de întrerupere = stabilește ordinea în funcție de toate cererile de întrerupere primite (în acel moment) FUNCȚIONARE: 1. Interrupt Request: placa lansează semnal (cerere) 2. Interrupt Acknowledge: uP abandonează temporar activ. curentă și trans. un msj. recepție 3. se salvează starea uP 4. se citește din tabela vectorilor de întrerupere adresa 5. se dă controlul rutinei de la adr. citită 6. se reface stare uP APIC - Controlerul de întreruperi integrat Intel: gestionare întreruperi APIC local: servește un procesor cu întreruperi I/O APIC: ascultă cererile IRQ ale diferitelor componente (cele 2 conlucrează) NIVELE IRQ: magistrala IRQ are 2 controlere de întrerupere: 2x8 intrări, deci 16 canale (nivele) ordine nivele: de la cel mai important: IRQ 0,1,2/9, 10-15, 3-8 ADRESA DE IN-OUT Intel x86 are un spațiu de mem. special pentru stocare adr. de in-out: mem. nesegmenltată 64KB/32KB (8b/16b) aceste spații de memorie = mici porți de mem. folosite ca punți de comunicație, setate cu grijă să nu se suprapună PROIECTAREA UNUI SISTEM I/O obiective de cost, dependențe, performanță PAȘI PROIECTARE: 1. enumerarea diferitelor tipuri de dispozitive I/O care se vor conecta la sistem sau a magistralelor standard pe care le suportă sistemul 2. enumerarea cerinţelor fizice pentru fiecare dispozitiv I/O, cerinţele incluzând dimensiunea, puterea, conectorii, sloturile disponibile pe magistrală etc. 3. luarea în calcul a costului fiecărui dispozitiv I/O, incluzând costul controlerului necesar pentru dispozitivul respectiv 4. luarea în calcul a fiabilităţii fiecărui dispozitiv I/O, precum şi a cerinţelor de memorie şi de ocupare a magistralei I/O de către fiecare dispozitiv I/O în parte; Observaţie: şi atunci când CPU nu foloseşte memoria, dimensiunea memoriei principale şi a magistralei I/O este limitată 5. estimarea performanţei şi a disponibilităţii diferitelor modalităţi de organizare a dispozitivelor I/O, pentru ca în final să se aleagă cea mai bună organizare 6. înregistrarea cererii de acces a fiecărui dispozitiv I/O la resursele CPU: numărul necesar de cicluri de ceas pentru instrucţiunile de iniţializare a dispozitivului I/O suportarea operaţiilor unui dispozitiv I/O (de exemplu, întreruperile) evitarea blocării CPU cauzate de aşteptarea eliberării memoriei, magistralei sau memoriei cache, care sunt folosite de dispozitivele I/O NIVELUL FIZIC = fundamentul calculatorului, are ca suport circuitele şi porţile logice Categorii de circuite integrate logice (combinație porți logice încapsulate în circuit) SSI (Small Scale Integration) – circuite cu integrare redusă MSI (Medium Scale Integration) – circuite cu densitate medie de integrare LSI (Large Scale Integration) – circuite cu înaltă densitate de integrare VLSI (Very Large Scale Integration) – circuite cu înaltă densitate de integrare SVLSI (Super Very Large Scale Integration) – circuite cu foarte înaltă densitate de integrare MICROPROCESORUL GESTIONARE ÎNTRERUPERI INT = interrupt INTA interrupt acknowledge RD = read WR = write CS = Chip Select A0 = linia 0 de adresă (toate active pe 0) AVANTAJ: dacă sunt necesare mai mult de opt linii de întrerupere, atunci se poate crea o structură pe două niveluri, cu un 8259A la ale cărui intrări sunt legate ieşirile de întreruperi ale altor opt circuite 8259A. Se creează astfel posibilitatea tratării a 64 de linii de întrerupere. MAGRISTRALA 1. procesor-memorie: între procesor şi memorie; specializate; scurte; rapide 2. I/O: pot avea multe dispozitive I/O conectate (direct sau prin canale I/O supervizate de procesoare specializate); universale; lungi; mai lente decât magistralele procesor-memorie; nu sunt legate direct la memorie, ci prin magistrale procesor-memorie ori magistrale de fundal (backplane) 3. backplane (originar folosite la placa de bază): permit acces simultan la procesor, memorie, dispozitive I/O; sunt reutilizabile (bune pentru diverse configuraţii); ARBITRAJ MAGISTRALĂ MAG. MEMORIEI PCI vs PCI Express Magistrala PCI Express este gestionată de un switch care gestionează conexiunile punct-la-punct, înainte de a interacţiona cu restul sistemului, fiecare dispozitiv are o cale directă şi exclusivă către switch Diferenţele majore ale arhitecturii PCIe faţă de arhitectura PCI sunt: switch centralizat vs. magistrală multimaster; conexiuni seriale punct la punct vs. magistrală paralelă de lăţime mare, cu defazaje (skew) transfer de pachete între dispozitive vs. transfer de (blocuri de) cuvinte prin comenzi master-slave grad de siguranţă oferit de aplicarea codurilor corectoare de erori la pachete conexiunile cip-switch sunt mai lungi (50 cm), oferind posibilitatea partiţionării sistemul este extensibil, un dispozitiv putând deveni la rândul său un switch posibilitatea d