Arhitectura calculatoarelor
Diagrama bloc a unei arhitecturi uniprocesor
În domeniul ingineriei calculatoarelor, arhitectura calculatoarelor reprezintă un set de discipline care descriu funcționalitatea, organizarea și implementarea sistemelor informatice.
Arhitectura calculatoarelor este teoria din spatele construcției unui calculator și se ocupă de modul în care este proiectat un calculator, în special cu organizarea și structura lor internă și externă: structura logică și caracteristicile funcționale ale unui computer, inclusiv interacțiunea hardware și software, setul de instrucțiuni executabile, tipuri de date care trebuie procesate.
Conceptul de arhitectură a unui calculator a fost introdus pentru prima dată în anul 1964 de Gene Amdahl, Gerrit A. Blaauw și Frederick Brooks de la IBM, pentru a distinge caracteristicile comune ale tuturor modelelor IBM System/360 de designul lor foarte diferit în ceea ce privește tehnologia, capacitatea și viteza de operare.
«Arhitectura calculatoarelor, ca și alte arhitecturi, este arta determinării nevoilor unei structuri de utilizator și apoi proiectarea pentru a răspunde cel mai bine acestor nevoi în cadrul constrângerilor economice și tehnologice». [1]
Descrierea conceptului a fost perfecționată de Gordon Bell și Allen Newell care au introdus în 1970 interpretarea pe patru nivele: nivelul circuitului, nivelul de proiectare logică, nivelul de programare și nivelul magistralei de procesor-memorie. Ulterior, conceptul a fost extins pentru a include specificații funcționale și hardware. [2]
Arhitectura computerelor include cel puțin trei subcategorii principale:
Set de instrucțiuni (ISA): reprezintă interfața prin care un calculator poate fi programat, și conține tipuri de date, instrucțiuni, modurile de adresare, arhitectura memoriei, rutinele de tratare a întreruperilor și excepțiilor, registrele procesorului, formatele de adresă și date, intrările și ieșirile standard. Arhitectura setului de instrucțiuni conține și o specificație a codurilor operațiilor, comenzile native implementate de o anume unitate de procesare.
Microarhitectură: cunoscută și sub numele de organizarea computerelor , este un nivel inferior, o descriere detaliată a sistemului și funcționării tuturor părților sistemului de calcul, modul în care acestea sunt interconectate și interoperează pentru a implementa ISA.
, este un nivel inferior, o descriere detaliată a sistemului și funcționării tuturor părților sistemului de calcul, modul în care acestea sunt interconectate și interoperează pentru a implementa ISA. Proiectare sistem: include toate componentele hardware din sistem cum ar fi unitatea de procesare grafică și accesul direct la memorie. De asemenea, include controlere de memorie, magistrale, multiprocesare și virtualizare.[3][4]
Arhitectura calculatoarelor este organizată conform mai multor criterii:
În funcție de setul de instrucțiuni ISA al procesorului (arhitectura procesoarelor) [ modificare | modificare sursă ]
Complex Instruction Set Computer (CISC): este primul tip ISA. Astfel de procesoare efectuează toate comenzile simple și complexe pentru un număr mare de cicluri. Intel x86 este un exemplu de calculator CISC.
Reduced Instruction Set Calculator (RISC): procesoarele funcționează mai rapid decât CISC, având instrucțiuni reduse care simplifică arhitectura și reduce numărul de comenzi. Procesoare RISC consacrate sunt cele din familia Sun SPARC și MIPS.
Microprocessor without Interlocked Pipeline Stage (MIPS): o arhitectură RISC, simplificată și foarte scalabilă dezvoltată de MIPS Computer Systems. Procesoarele MIPS au o linie de instrucțiuni în 5 etape pentru a executa mai multe instrucțiuni în același timp.
Simple Instruction Set Computing (SISC): tip de arhitectură microprocesor destinată procesării sarcinilor în paralel. Acest lucru este implementat prin utilizarea tehnologiei VLSI, care permite folosirea simultană a mai multor dispozitive low-cost pentru a rezolva o problemă particulară împărțită în părți disjuncte. Arhitectura RISC este un subset al SISC, axat pe viteza de procesare datorită unui set redus de instrucțiuni.
Minimal Instruction Set Computer (MISC): arhitectură de procesor cu un număr foarte mic de operații de bază de instrucțiuni și coduri opționale corespunzătoare. Procesoarele au un număr minim de comenzi, toate comenzile sunt simple și necesită un număr mic de ceasuri pentru a fi executate. Microcontrolere pentru aplicații de sisteme înglobate sunt considerate MISC.
Very Long Instruction Word (VLIW): este o arhitectură microprocesor ce execută un număr mic de operații simple la un moment dat folosind paralelizare la nivel de instrucțiune. Denumirea arhitecturii acestui tip de microprocesor vine de la faptul că instrucțiunile ce vor fi executate sunt împachetate într-o instrucțiune largă. Astfel de procesoare sunt utilizate pe scară largă în procesarea semnalelor digitale.
Transport triggered architecture (TTA): un tip de arhitectură de procesor în care singura instrucțiune disponibilă mută o valoare de la un registru la altul. Este o variantă a arhitecturii microprocesoarelor în care programele comandă direct conexiunile interne (magistrale) între unitățile procesoarelor (UAL, fișierul de registru). Arhitectura TTA este aplicată în proiectarea de procesoare orientate spre rezolvarea unei anumite probleme (ASIP).
Explicitly Parallel Instruction Computing (EPIC): Set de instrucțiuni care permite microprocesoarelor să execute instrucțiuni software în paralel prin utilizarea compilatorului, mai degrabă decât a circuitelor complexe pentru a controla executarea instrucțiunilor paralele. Aceasta permite scalarea simplă a performanței fără a recurge la frecvențe de ceas mai mari.
One Instruction Set Computer (OISC): Este de fapt un calculator abstract (teoretic) care folosește o singură instrucțiune, evitând necesitatea unui cod de operare în limbajul calculatorului. Au fost utilizate ca ghiduri în predarea arhitecturii computerelor și ca modele de calcul în cercetarea de calcul structural.
No Instruction Set Computing (NISC): Arhitectură și tehnologie de compilare pentru proiectarea unor procesoare personalizate extrem de eficiente și acceleratoare hardware, permițând unui compilator să aibă control la nivel scăzut al resurselor hardware.
Zero Instruction Set Computer (ZISC): Arhitectură bazată pe detectarea potrivirilor (pattern matching) și absența microinstrucțiunilor. Aceste cipuri sunt considerate comparabile cu rețelele neuronale permițând prelucrarea masivă în paralel a datelor foarte simple (0 sau 1). [5]
În funcție de principiul de partajare a memoriei [ modificare | modificare sursă ]
Arhitectură von Neumann: atât datele, cât și codul programului sunt stocate în aceeași zonă de memorie. Programele sunt extrase din memorie pentru a fi executate de unitatea centrală. În principiu, programele și datele sunt reprezentate în memorie în același mod.
Arhitectură Harvard: datele și instrucțiunile sunt stocate în zone de memorie separate. Acestea ocupă module de memorie separate, iar instrucțiunile pot fi executate numai din memoria instrucțiunilor.
Arhitectură mixtă: cunoscută și sub numele de arhitectură Harvard modificată, este o variantă a arhitecturii Harvard, combinație a celor două tipuri: zonele de memorie pentru comenzi și date sunt separate, dar folosind magistrale partajate. Aceasta permite accesarea conținutului memoriei de instrucțiuni ca și cum ar fi date. Majoritatea calculatoarelor moderne care implementează arhitectura Harvard, de fapt, implementează arhitectura Harvard modificată.
În funcție de taxonomia Flynn [ modificare | modificare sursă ]
Aceste arhitecturi definite de Flynn au la bază numărul de fluxuri de instrucțiuni și date concurente disponibile în arhitectură.
SISD (Singular Instruction Singular Data): este un computer secvențial (scalar). Exemple de arhitecturi SISD sunt calculatoarele tradiționale uniprocesor, computerele personale sau sistemele mainframe tradiționale.
SIMD (Singular Instruction Multiple Data): sisteme cu microprocesoare matriceale, la care operațiile aritmetice se execută în paralel pentru fiecare element al matricei, operația necesitând o sngură instrucțiune (se mai numesc și sisteme de procesare vectorială).
MISD (Multiple Instruction Singular Data): acest tip este folosit în sisteme care sunt obligate să posede câteva procesoare care rulează simultan: în cazul în care unul se defectează nu e nevoie să se întrerupă rularea, din cauza prezenței a cel puțin unui sistem de rezervă (backup). Mai sunt cunoscute și sisteme MISD cu 3 sau 5 procesoare.
MIMD (Multiple Instruction Multiple Data): multiple procesoare autonome care execută diferite instrucțiuni asupra unor date diferite.
Funcție de modul de împărțire a accesului la memorie și a procesorului [ modificare | modificare sursă ]
SMP (Symmetric Multiprocessing): arhitectură multiprocesor în care două sau mai multe procesoare identice ca performanță sunt conectate la memoria partajată și îndeplinesc aceleași funcții. Majoritatea sistemelor multiprocesor folosesc arhitectura SMP.
ASMP (Asymmetric Multiprocessing): arhitectură în care procesoarele nu sunt tratate în același mod de sistemul de operare. Anumite dispozitive sau procese ale sistemului de operare pot fi atașate exclusiv unui anumit procesor. ASMP a fost utilizat înaintea tehnologiei SMP. De asemenea, este utilizat ca o alternativă mai ieftină la sistemele care acceptă SMP.
NUMA (Non-uniform memory access): implementare a memoriei computerului utilizată în sistemele multiprocesor atunci când timpul de acces la memorie este determinat de locația sa în raport cu procesorul.
AMP (Asynchronous Multiprocessing): arhitectură care vizează creșterea puterii de calcul a unui computer prin utilizarea mai multor procesoare care funcționează independent unul de celălalt. Este o variație a arhitecturii ASMP.
MPP (Massively Parallel Processing): arhitectură de sisteme de calcul paralele. Utilizează un număr mare de procesoare (sau computere separate) pentru a efectua setul de calcule coordonate în paralel. Fiecare dintre acestea putând avea și propria sa memorie principală. Computerele IBM Blue Gene sunt un exemplu de arhitectură MPP.[6][7]
Vezi și [ modificare | modificare sursă ]
Referințe și note [ modificare | modificare sursă ]
Legături externe [ modificare | modificare sursă ]