În ingineria calculatoarelor, arhitectura calculatoarelor reprezintă proiectarea conceptuală și structura operațională fundamentală a unui sistem informatic. Ea reprezintă desenele tehnice și descrierea funcțională a tuturor cerințelor de proiectare (în special viteze și interconexiuni), reprezintă modul de proiectare și implementare a diferitelor părți ale unui calculator - concentrându-se în mare parte pe modul în care unitatea centrală de procesare (CPU) funcționează în interior și pe modul în care aceasta accesează adresele din memorie.
Aceasta poate fi definită ca fiind știința și arta de a selecta și interconecta componentele hardware pentru a crea calculatoare care îndeplinesc obiective funcționale, de performanță și de cost.
Arhitectura calculatoarelor include cel puțin trei subcategorii principale:
- Arhitectura setului de instrucțiuni, sau ISA, este modelul abstract al unui sistem de calcul care este văzut de un programator în limbaj de mașină (sau limbaj de asamblare), inclusiv setul de instrucțiuni, modurile de adresare a memoriei, registrele procesorului și formatele de adrese și date.
- Microarhitectura, cunoscută și sub numele de Organizarea calculatoarelor, este un nivel inferior, o descriere detaliată a sistemului care este suficientă pentru a descrie complet funcționarea tuturor părților sistemului de calcul, precum și modul în care acestea sunt interconectate și interfuncționează pentru a implementa ISA. Dimensiunea memoriei cache a unui calculator, de exemplu, este o problemă de organizare care, în general, nu are nimic de-a face cu ISA.
- Proiectarea sistemului, care include toate celelalte componente hardware ale unui sistem de calcul, cum ar fi:
· Interconexiuni de sistem, cum ar fi autobuzele și comutatoarele de calculator.
· Controlere și ierarhii de memorie.
· Mecanisme de descărcare de sarcină a procesorului, cum ar fi accesul direct la memorie.
· Probleme precum multiprocesarea.
Odată ce atât ISA, cât și microarhitectura au fost specificate, sistemul de calcul propriu-zis trebuie să fie proiectat în hardware. Acest proces de proiectare se numește implementare. Implementarea este, de obicei, un proces de proiectare de inginerie hardware.
Punerea în aplicare poate fi împărțită în continuare în trei părți, dar nu complet separate:
- Implementarea logicii: Proiectarea blocurilor definite în microarhitectură, în principal, la nivelul registrelor-transfer și al porților.
- Implementarea circuitului: Proiectarea la nivel de tranzistor a elementelor de bază (porți, multiplexoare, flip-flops etc.), precum și a unor blocuri mai mari (ALU, cache-uri etc.) care pot fi implementate la acest nivel sau chiar la un nivel fizic inferior, din motive de performanță.
- Implementarea fizică: Circuitele fizice sunt desenate, diferitele componente ale circuitului sunt plasate într-un plan de bază al cipului sau pe o placă, iar firele care le conectează sunt trase.
În cazul procesoarelor, întregul proces de implementare se numește adesea proiectare CPU; poate fi vorba, de asemenea, de o familie de proiecte de CPU înrudite, cum ar fi RISC și CISC.