Sunteți pe pagina 1din 4

1.

ISA (Instruction set architecture)

Nivelul ISA este definit de modul în care mașina este văzută de către un programator în
limbaj mașină. Însă deoarece limbajul mașină nu mai este atât de folosit în zilele noastre putem
spune că la nivel ISA codul este ceea ce compilatorul produce la ieșire ( ignorând apelurile
sistemului de operare și ale limbajului de asamblare pentru moment). Pentru a produce cod de
nivel ISA, autorii compilatorului trebuie să cunoască care este modelul de memorie, ce registre
există, ce tipuri de date și instrucțiuni sunt disponibile, și așa mai departe. Colecția acestor
informații definește nivelul ISA.

Pentru unele arhitecturi , nivelul ISA este specificat de un document de definire formală,
deseori produs de un consorțiu industrial. Scopul unui document de definire este acela de a face
posibil ca mai multe firme diferite să poată construi o mașină, astfel încât toate mașinile să
furnizeze exact aceleași rezultate când executa același software.

O proprietate a nivelului ISA este că pe majoritatea mașinilor exista cel puțin două
moduri. Modul nucleu (Kernel Mode) este folosit la execuția sistemului de operare permițând
execuția tuturor instrucțiunilor. Modul utilizator ( User Mode) permite execuția aplicațiilor
program și nu permite executarea anumitor instrucțiuni critice ( ca cele de prelucrare a
memoriei intermediare).

2.RISC

3.CISC

Prezentare în paralel

Dacă la început accentul se punea pe instrucțiuni simple care să se execute rapid, în


curând s-a constatat că proiectarea unor instrucțiuni care să poată fi lansate rapid este cheia
performanței. Durata de timp pentru execuția unei instrucțiuni conta mai puțin decât numărul
de instrucțiuni care puteau fi lansate în execuție într-o secunda.

Caracteristica cea mai pregnantă a procesoarelor de atunci era numărul relativ mic de
instrucțiuni disponibile, în general în jur de 50. De fapt, acronimul RISC înseamnă Calculator cu
Set Redus de Instrucțiuni (Reduced Instruction Set Computer), în contrast cu CISC, care
înseamnă Calculator cu Set Complex de Instrucțiuni (Complex Instruction Set Computer) – o
referire abia voalata la VAX, ce domina pe atunci departamentele de știință ale calculatoarelor
din universități.

Suporterii RISC susțineau că modul cel mai bun de a proiecta un calculator era să ai un
număr redus de instrucțiuni simple, care să se execute într-un singur ciclu al căii de date și
anume extragerea a două registre, combinarea lor într-un mod oarecare ( de exemplu
adunandu-le sau făcând AND logic între ele), și depozitarea rezultatului înapoi într-un registru .
Argumentul lor era următorul: chiar dacă mașina RISC avea nevoie de patru sau cinci instrucțiuni
pentru a face ce făcea mașina CISC într-o singură instrucțiune, dacă instrucțiunile RISC sunt de
10 ori mai rapide (pentru că nu sunt interpretate), RISC va câștiga. De asemenea merită scos în
evidență faptul că în acel moment viteza memoriilor principale ajunsese din urmă viteza
memoriilor de control, crescând astfel factorul de penalizare pentru interpretare și favorizând
puternic mașinile RISC.

În felul în care evoluau lucrurile, s-ar fi putut crede că mașinile RISC vor detrona
mașinile CISC. Însă acest lucru nu s-a întâmplat. Începând cu 486, UCP-urile Intel conțin un
nucleu RISC care execută instrucțiunile cele mai simple într-un singur ciclu al căii de date,
interpretând instrucțiunile mai complicate în modul caracteristic CISC. Rezulatul net este că
instrucțiunile uzuale sunt rapide și instrucțiunile mai exotice sunt lente. Chiar dacă această
abordare hibridă nu este la fel de rapidă ca și cea RISC pură, ea permite în același timp obținerea
unei performanțe globale competitive și rularea vechiului software nemodificat.

4. Legea lui Moore, enunțată de către Gordon Moore, co-fondator Intel, afirma faptul că
numărul de componente din circuitele integrate s-a dublat anual de la invenția circuitului
integrat, în 1958, până în 1965. De asemenea, Moore crede că trendul vă continua pentru cel
puțin încă 10 ani.

Legea lui Moore se folosește în industria semiconductorilor pentru a-și planifica țintele
în materie de cercetare și de lansare de produse, aceasta fiind încă valabila la 50 de ani de la
enunțarea ei.

Revizuind teoria, autorul a afirmat că dublajele vor apărea la fiecare 2 ani, dar de obicei,
noua lege vorbește despre o dublare la 18 luni a numărului de componente din semiconductori,
datorită unei afirmații făcute de David House, director Intel.

Un lucru interesant de subliniat este faptul că compania Atomera spune că a descoperit o


tehnologie prin care Legea lui Moore ar putea fi extinsă. Această tehnologie poartă numele de
Mears Silicon Technology, și funcționează prin faptul că se introduce un strat de oxigen în
structura de silicon deja existentă, pentru a îmbunătăți performanțele acestuia. Compania
susține că o astfel de tehnologie mărește mobilitatea electronilor și scade considerabil
pierderile.

5. NVDLA (NVIDIA Deep Learning Accelerator ) este o arhitectură cu procesor neuronal proiectată
de către Nvidia. NVDLA este o microarhitectură ce a fost concepută pentru accelerarea
încercărilor de învățare profundă. Deoarece implementarea inițială a vizat propriul Xavier SoC al
companiei Nvidia, arhitectura este optimizată în mod specific pentru rețele neuronale
convoluționale (CNN), deoarece principalele tipuri de încărcări se ocupau de imagini și de clipuri
video, deși și alte rețele sunt suportate.
La nivel ridicat, NVDLA stochează atât activarea, cât și intrările într-un buffer
convolutional. Ambele sunt alimentate într-un nucleu convoluțional. Rezultatul final este trimis
într-o unitate de postprocesare ce se scrie în memorie. Elementele de procesare sunt
încapsulate de logica de control, precum și de o interfață de memorie (DMA).
6. Tensor Processing Unit (TPU) este un ASIC (Circuit integrat specific acceleratorului AI(Artificial
Intelligence)) anunțat de Google pentru executarea algoritmilor de Machine Learning. UCP-urile
sunt procesoare cu scop general. Unitățile de procesare grafică sunt mai potrivite pentru grafică
și sarcini care pot beneficia de execuția paralelă. DSP-urile funcționează bine pentru sarcini de
prelucrare a semnalului care necesită de obicei precizie matematică. Pe de altă parte, TPU-urile
sunt optimizate pentru Machine Learning. În timp ce oricare dintre celelalte ar putea fi folosite și
pentru Machine Learning, este de așteptat că TPU să aducă o performanță mai bună per watt
pentru Machine Learning. De fapt, TPU se spune că transpune puterea de calcul cu șapte ani în
viitor, ceea ce este echivalent cu trei generații din Legea lui Moore.

Google susține că TPU-urile sunt adaptate pentru a rula TensorFlow, o bibliotecă de


software open source pentru Machine Intelligence.

7. Legea lui Amdahl este o formulă folosită pentru a găsi o îmbunatățire maximă posibilă prin
îmbunătățirea unei anumite părți a unui sistem. În calculul paralel, legea lui Amdahl este
utilizată în principal pentru a prezice viteza maximă teoretică pentru procesarea programelor
folosind mai mulți procesori. Această lege a fost enunțată de către Gene Amdahl, un architect
de calculatoare de la IBM și Amdahl Corporation.
Pentru o mai bună înțelegere a acestei legi voi exemplifica printr-o situație din viața
reală. Considerăm o situație în care trei prieteni, Mihai, Andrei și Ionut, merg la o petrecere.
Există două condiții pentru a putea intra în sala de petreceri: în primul rând trebuie să se meargă
separat, iar în al doilea rând toți trebuie să fie prezenți la ușă pentru a putea intra. Să
presupunem că Mihai vine în mașină, Andrei folosește o motocicletă și Ionut vine pe jos. Cu alte
cuvinte, indiferent cât de repede Mihai și Andrei pot ajunge în sala de petreceri, trebuie să
aștepte ca Ionut să sosească pentru a putea să participe la petrecere. Aceasta înseamnă că,
pentru a accelera procesul general, trebuie căutată o soluție pentru îmbunătățirea timpului în
care Ionut poate să ajungă la petrecere decât pentru îmbunătățirea timpului în care ceilalți doi
pot ajunge la petrecere.
Într-un mod similar este și legea lui Amdahl, aceasta relatând îmbunătățirea
performanțelor unui sistem cu părțile care nu au avut rezultate bune. Acest lucru afectează
considerabil proiectarea sistemelor de calcul. În timp ce producătorii fac eforturi enorme pentru
îmbunătățirea performanțelor procesoarelor, dispozitivele de intrare/ieșire precum dispozitivele
de memorie și de stocare sunt încă prea lente în comparație cu procesoarele. Rezultă astfel că
îmbunătățirea generală a vitezei este limitată de viteza redusă a dispozitivelor de intrare/ieșire.
La un anumit punct, producătorii vor trebui să acorde mai multă atenție îmbunătățirii vitezei I/O
în loc de viteza procesorului.

8. Paralelismul la nivel de instruire (ILP – Instruction Level Parallelism) este o măsură a numărului
de operații dintr-un sIstem care sunt simultan executabile. Independența instrucțiunilor din
programe una de cealaltă permite execuția simultană. Există două forme de paralelism:
- Banda de asamblare a instrucțiunilor successive.
- Execuția în paralel a instrucțiunilor independente: procesoare de tip VLIW cu
compilatoare care aleg instrucțiunile care se pot executa în paralel și procesoarele superscalare
care fac alegerea în timpul execuției.
Banda de asamblare (pipeline) se referă la extragerea instrucţiunilor de executat într-o
zonă tampon pentru extragere în avans (prefetch buffer) astfel încât atunci când este necesară
instrucţiunea se va citi din tampon, nu din memorie.

9. Arhitectura ARM (Advanced RISC Machine) , cunoscută inițial sub numele de Acorn RISC
Machine, este o arhitectură de microprocesoare de tip RISC (Reduced Instruction Set Computer)
pe 32-bit și 64-bit. A fost introdusă în 1983 de Acorn Computers și ulterior dezvoltată de ARM
Holdings, începând cu anul 1990.
Aceasta arhitectură a devenit una dintre cele mai utilizate arhitecturi deoarece implică un
consum redus de energie, performanța în rezolvarea sarcinilor mici și multiple. De asemenea
costurile și dimensiunile reduse au reprezentat de asemenea un avantaj. Este utilizată în
smarphone-uri, sisteme înglobate, servere, supercomputere.

10. FPGA ( Field Programmable Gate Array) sunt dispozitive semiconductoare care se bazează pe o
matrice de blocuri logice configurabile (CLB) conectate prin interconectări programabile.
FPGA-urile pot fi reprogramate după cerințele aplicației sau funcționalității dorite după
fabricare. Această caracteristică distinge FPGA-urile de circuitele integrate specifice aplicației
(ASIC), care sunt fabricate în mod particular pentru sarcini de proiectare specifice. Cu toate că
sunt disponibile FPGA-uri programabile (OTP) o singură dată, tipurile dominante sunt bazate pe
ȘRAM, care pot fi reprogramate pe măsură ce designul evoluează.
Configurarea FPGA se realizează cu ajutorul unui limbaj de descriere hardware HDL,
similar cu cel folosit pentru dispozitivele ASIC(Application Specific Integrated Circuit). Recent, s-
au dezvoltat și compilatoare care traduc instrucțiuni din limbajul C în limbaje HDL. Un astfel de
compilator este Impulse C.

Un bloc logic este alcătuit dintr-un tabel de căutare cu 4 intrări, un flip-flop și un


multiplexor care selectează fie ieșirea tabelului de căutare, fie ieșirea sincronizata a acestuita.

S-ar putea să vă placă și