Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Introducere in Proiectarea Procesorului
1 Sarcinile proiectarii calculatoarelor
Consideram cuvantul "arhitectura" acoperitor pentru trei aspecte de proiectare:
arhitectura setului de instructiune, organizare si hardware
Proiectul trebuie sa respecte cerintele functionale si constrangerile de pret, putere, performanta si disponibilitate
Factorii care influenteaza arhitectura Nivele de proiectare
Nivele de proiectare
Nivele de abstractii pentru proiectare digitala.
Abordarea proiectarii pe nivele de abstractie
Proiectare de sus in jos - Top down Design Flow
2 Sinteza de nivel inalt (High-Level Synthesis (HLS Sinteza sistemelor numerice
Sinteza de nivel inalt ca o tranzitie in diagrama Y a lui Gajski
Ce este sinteza?
Sinteza arhitecturala (de nivel inalt)
Sinteza logica; Transforma ecuatiile Boolean-e intr-o retea de porti logice
Proiectare la nivel de sistem
Specificarea functionalitatii, conditiilor de operare si a caracteristicilor cerute
Performanta, putere, forma, cost, etc.
Partitionarea functionalitatii in task-uri
Explorarea solutiilor alternative, hardware/software
Blocuri componente - cumparare/elaborare
Stabilire Interfete si protocoale pentru transfer de data
Decizii, Formate de date, moduri de operare, tratarea exceptiilor,..
Specificarea, modelarea,evaluarea si rafinarea comportamentala a task-urilor
3 Performanta calculatorului
Evolutia Performantei
Tendinte de Performanta: Latime de banda vs. Intarziere- Durata. (Bandwidth/Latency)
Latime de banda, productivitate: cantitatea totala de sarcini rezolvate intr-o unitate de timp
(megabytes/sec) Important daca avem mai multe task-uri de rezolvat
Intarziere-durata, timp de raspuns, timul intre cerere si raspuns, ex. milisecunde pentru un acces la disk
Important daca avem task-uri critice in timp, timp real
Cresterea Latimii de banda este mai rapida decat reducerea timpului de raspuns
Ecuatia performantei procesorului
Timpul de executie in CPU pentru un program poate fi exprimat in doua feluri
CPU time = CPU clock cycles for a program × Clock cycle time
Numarul instructiunilor executate-the instruction count (IC).
Daca cunoastem numarul ciclurilor de ceas si numarul instructiunilor executate, putem calcula numarul mediu de cicluri de ceas per instructiune clock cycles per instruction (CPI).
instructions per clock (IPC), inversul CPI pentru Superscalar - Multi Issue
CPU time = Instruction count × Cycles per instruction × Clock cycle time = IC.CPI.CCT
sau
Performanta procesorului depinde de 3 factori
Clock cycle time-depinde de tehnologia Hardware si organizare
CPI- depinde de Organizare si ASI
Instruction count-depinde de ASI si compilator
Interdependente, ex. CPI vs. Instruction Count;
Legea lui Amdahl - Castigul de performanta
Defineste rapidizarea, speedup, care se poate obtine datorita unei imbunatatiri
Presupunem ca putem face o imbunatatire a performantei
sau
Speedup depinde de doi factori:
fraction - fractiune a timpului de calcul care poate fi imbunatatita
2. Castigul datorita imbunatatirii
Presupunem o optimizare x care accelereaza o fractiune fx a programului cu un factor de Sx , cat este castigul de viteza?
Rezulta din legea lui Amdahl:
Cazurile frecvente merita sa fie rapidizate: daca fx→1, speed-up → Sx.
Sa nu exageram: daca Sx→ , speed-up → 1 / (1 - fx).
Castig limitat de fractiune de cod care poate fi accelerat
Exemplu: legea lui Amdahl
Daca Sx = 100, cat este castigul general, in functie de fx?
Castig viteza vs. Fractiune optimizata, Sx = 100
Examplu
Amdahl's Law
Maximum speedup is limited by the serial fraction of a program
. N = the number of processors,
. s = the time spent by a processor on serial part of a program,
. p = the time spent by a processor on parallel part of a program
. t = total time = s + p = 1
Maximum possible speedup is given by:
N = 10 Processors, the speedup to achieve D = 8, the portion of program to be parallelized will be
p=
Trend istoric pentru performanta Procesor
Cresterea performantei
datorita tehnologiei
idei de arhitectura si organizare
limitari; putere, instruction-level parallelism (ILP) disponibil, timp de acces memorie
Sfarsitul erei Uniprocessor
2004 Intel; lansarea multiprocesoarelor
O trecere istorica de la instruction level parallelism (ILP), la
thread-level parallelism (TLP) si data-level parallelism (DLP)
Compilatorul si hardware exploateaza ILP implicit, fara interventia programatorului
TLP si DLP - programatorul scrie cod paralel pentru castig de performanta.
Urmeaza: Multiprocessor, Multi-core, Many-core
Circuitele Integrate reprezinta o parte semnificativa a costurilor de sistem.
Costul chip-ului este functie de area4.a placii de siliciu
Dar resurse mai mari ofera perforanta mai ridicata.
A stabili cotul curbei performanta-cost, SAU
Obtine performanta maxima cu costuri fixate, pentru tinta data
Alte componente ale costurilor:
Important pentru proiectare procesor incapsulat (embedded).
Ex. Volum cod redus memorie mica cost redus
5 Consum de putere
Pentru chip-uri CMOS, consum de energie dominanta - comutarea tranzistoarelor - putere dinamica.
Puterea dinamica si energia se reduc prin reducerea tensiunii - scazut de la 5V la 1+V in 20 de ani
Sarcina capacitiva este functie de numar de tranzistoare si tehnologie
Pentru un task dat, reducerea vitezei ceasului reduce puterea, dar nu si energia
Multe microprocesoare opresc semnalul ceas pentru module inactve, pentru economie de energie
Putere statica devine importanta, fiindca curentul de scurgere exista chiar cand tranzistorul este blocat
Sisteme cu consum foarte mic deconecteaza tensiunea de alimentare de la module inactive, pentru a elimina curentul de scurgere
In 2006, tinta pentru scurgere este 25% din consum total, greu de realizat
Incapsulare mai ieftina (fara racire).
Prevenirea defectarilor.
Limitarile racirii au contribuit la conceperea procesoarelor multiple pe un chip, frecventa ceas si tensiune reduse
Copyright © 2024 - Toate drepturile rezervate