Documente Academic
Documente Profesional
Documente Cultură
Capitolul 1
Capitolul 1
1
24. O altă capcană citată în secțiunea 1.10 este aceea că ne așteptăm să îmbunătățim performanțele generale
ale unui calculator ......................................................................................................................................................11
25. Presupuneți că un program necesită execuția a 50 x 106 instrucțiuni FP, 110 x 106 instrucțiuni INT ..........11
26. Atunci când un program este adaptat să se execute pe procesoare multiple într-un sistem multiprocesor 12
c) Care mașină are raportul MIPS mai mic? Pentru care clasă individuală de instrucțiuni trebuie să
schimbi CPI-ul, și cât de mult, pentru ca această mașină să aibă aceleași performanțe sau mai
bune față de mașina cu MIPS-ul mai mare (poți schimba doar CPI-ul pentru una dintre clasele de
instrucțiuni de pe mașina mai lentă)?
Masina M2 are raportul MIPS mai mic.Daca schimbam CPI-ul instructiunii clasei A pentru
masina M2 la 1,putem avea un raport mai bun a MIPS decat M1 asa cum urmeaza:
Clocks pe Instructiune = (60/100)*1 + (30/100)*3 + (10/100)*4 = 1.9
Average MIPS rating = Clock Rate/(CPI * 106) = (100 * 106) / (1.9*106) = 52.6
b) Dogbert a preluat compania înlăturând toți managerii precedenți. Dacă realizați ambele
îmbunătățiri, la înmulțire și la împărțire, care este viteza procesorului astfel îmbunătățit relativ la
procesorul original?
b) Daca facem ambele imbunatatiri: ,
2
c) Timpul de executiedupa imbunatatire = (50)/8 + (20)/3 + (30) = 53.33
Imbunatatirea vitezei comparata cu processorul original = (100)/(53.33) = 1.88
4. Așa cum este definit MIPS-ul se poate defini MFLOPS-ul care înseamnă
milioane de instrucțiuni în virgulă flotantă per secundă. Dacă procesorul A are un MIPS mai
mare decât procesorul B, atunci în mod obligatoriu are și un MFLOPS mai mare decât B?
Un procesor A cu un MIPS mai mare decat un procesor B nu are si un MFLOPS mai mare pentru
procesorul A.Unul din motive ar fi:
Este posibil ca instructiunile in virgula flotanta sa aiba o proportie destul de redusa a
instructiunilor in program.
Deci operatiile in virgula flotanta a procesorului B sunt mult mai eficiente decat operatiile in virgula
flotanta a procesorului A in timp ce (intreg,memorie,etc) celalalte instructiuni sunt mai eficiente in
B,deci procesorul B are rata MFLOPS mai mare in timp ce procesorul A are o rata a MIPS mai mare.
b.Ce procent din timpul de execuție este petrecut în modul MMX dacă se realizează ă mărire de două
ori a vitezei ? (Sfat: trebuie calculat noul timp general).
3
Noul timp total este=100/2 = 50. Acum 55.55 of the original program used media enhancement. Let x be the
percentage of the new run-time that is spent in MMX mode (for a speedup of 2).
x = (55.55 *50)/100 = 27.78
c.Ce procent de îmbunătățire mediu este necesar pentru a obține o jumătate din maximum de mărire a
vitezei (one-half) care se poate obține utilizând modul MMX?
The maximum speedup using MMX mode occurs when the whole program can run in media
enhancement mode. The maximum speedup in this case is 10. One-half of this is 15. Plugging in 15
instead of 2 in (a):
(100)/15 = (x)/10 + (100-x)
Solving for x, we get x = 103.7
8.
a. Dacă procesorul A are ceasul mai mare ca procesorul B, și
procesorul A are și MIPS-ul mai mare decât procesorul B, explicați când
procesorul A va fi mai rapid decât procesorul B. Presupuneți că există două implementări ale
aceleiași arhitecturi a setului de instrucțiuni.
b. Procesorul A are ciclul de ceas de 20ns și un CPI efectiv de 1,5
pentru unele programe, și procesorul B are ciclul de ceas de 15ns și
un CPI efectiv de 1 pentru unele programe. Care procesor este mai rapid pentru acest program și
cu cât?
The CPU Time este dată de ecuația:
CPU Time = Numarul de instrucțiuni* CPI * Clock cycle Time
MIPS rating is defined by:
MIPS = (Clock Rate)/(CPI * 106)
For machines A and B:
(CPUTime)A = (Instruction count)A * (CPI)A * (Clock cycle Time)A
(CPUTime)B = (Instruction count)B * (CPI)B * (Clock cycle Time)B
(MIPS)A = (Clock Rate)A/((CPI)A * 106)
(MIPS)B = (Clock Rate)B/((CPI)B * 106)
If clock rate of A is higher than that of B, and MIPS rating of A is higher than that of B,
(MIPS)A > (MIPS)B and (Clock Rate)A > (Clock Rate)B
Din ecuațiile de mai sus rezultă că:
(Clock Rate)A / (Clock Rate)B > (CPI)A / (CPI)B
(Clock Cycle Time)B / (Clock Cycle Time)A > (CPI)A / (CPI)B
Din aceasta reiese că dacă numărul de instrucțiuni este același , procesorul A va executa întotdeauna mai repede
decât procesorul B.
Presupunând că numărul de instrucțiuni este același,
(CPUTime)A = (I) * 1.5 * 20ns = (I)*30ns
(CPUTime)B = (I) * 1.0 * 15ns = (I)*15ns
Machine B is faster by twice as much as Machine A.
Răspunsul la această întrebare este subiectivă . O listă posibilă de referință ar putea include următoarele :
Benchmark Program Motivul de a alegeacest Program Runtime Weight
benchmark (s)
Browser with multimedia plug ins Opening a lot of media 300 5
content in a lot of tabs at the
same can be used to test the
memory performance and
parallelism potential
Financial Application (Stock Value Can be used to measure 200 4
Predictor) floating point and vector
instruction set performance
Games that involve a lot of AI Can be used to test branch 100 3
prediction performance
Word processing software Most common use case. Can 200 5
be used to test general
integer operations and
rendering
Desktop Search Software Can be used to test I/O 300 3
performance since a search
software builds up a huge
index by constant read of file
system
Media ponderata a runtime este = (300*5 + 200*4 + 100*3 + 200*5 + 300*3)/20 = 225
a. Pentru un program cu 20% instrucțiuni ALU instrucțiuni, 10% instrucțiuni de control și 70%
instrucțiuni de lucru cu memoria, care va fi proiectul mai rapid?Furnizați valoarea medie a CPI
pentru fiecare caz.
Average CPI for Pipelined Version = (0.2*1 + 0.1*2 + 0.7*2.7) = 2.29
Average CPI for Non-Pipelined Version = (0.2*1 + 0.1*1 + 0.7*1) = 1.0 CPU execution
time for Pipelined version = 2.26/(500 Mhz) = 4.5ns CPU execution time for Non-
Pipelined version = 1.0/(350 Mhz) = 2.8ns The non-pipelined version is faster.
5
b. Pentru un program cu 80% instrucțiuni ALU instrucțiuni, 10% instrucțiuni de control și 10%
instrucțiuni de lucru cu memoria, care va fi proiectul mai rapid? Furnizați valoarea medie a CPI
pentru fiecare caz.
Average CPI for Pipelined Version = (0.8*1 + 0.1*2 + 0.1*2.7) = 1.27
Average CPI for Non-Pipelined Version = (0.8*1 + 0.1*1 + 0.1*1) = 1.0 CPU
execution time for Pipelined version = 1.27/(500 Mhz) = 2.54ns CPU execution time
for Non-Pipelined version = 1.0/(350 Mhz) = 2.8ns The pipelined version is faster.
14. Descrieți pașii care transformă un program scris într-un limbaj de nivel
înalt, precum C, într-o reprezentare care este direct executată de procesor.
The program is compiled into an assembly language program, which is then assembled into a
machine language program. = Programul este compilat într-un program de limbaj de asamblare,
care este apoi
asamblate într-un program de limbaj mașină
15. Presupuneți că un afișor color utilizează 8 biți pentru fiecare dintre culorile de bază
(roșu, verde și albastru) per pixel și un cadru având mărimea de 1280 x 1024.
a. Care este mărimea minimă în octeți al buffer-ului pentru cadru care memorează cadrul?
b. Când de mult durează trimiterea unui cadru pe o rețea cu viteza de 100 Mbit/s?
6
b. Dacă fiecare procesor execută un program în 10 secunde, calculați numărul de cicli și numărul de
instrucțiuni.
c. S-a încercat reducerea timpului cu 30% dar aceasta a condus la o creștere cu 20% a CPI-ului.
Care frecvență de ceas trebuie pentru a avea această reducere?
c. Se dezvoltă un nou compilator care utilizează doar 6.0E8 instrucțiuni și care are un CPI mediu de
1,1. Care este creșterea de viteză utilizând acest compilator versus compilatoarele A și B de pe
procesorul original?
19. Procesorul Pentium IV Prescott, realizat în 2004, avea un ceas de 3,6 GHz,
la o tensiune de lucru de 1,25V. Presupuneți că, pe medie, acesta consuma 10W de energie
statică și 90W de energie dinamică. Nucleul I5 Ivy Bridge, realizat în 2012, are un ceas de 3,4 GHz la o
tensiune de 0,9V. Presupuneți că în medie consumă 30W de putere statică și 40W de putere dinamică.
a. Pentru fiecare procesor găsiți încărcare capacitivă medie.
b. Găsiți procentul din puterea totală disipată ce corespunde puterii staticii și raportul dintre puterea
statică și cea dinamică pentru fiecare tehnologie.
c. Dacă puterea totală disipată este redusă cu 10%, cât de mult trebuie redusă tensiunea pentru a
menține același curent de scurgere? Notă: puterea este definită ca produsul între tensiune și
curent.
b. Dacă CPI-ul instrucțiunilor aritmetice se dublează care este impactul execuției programului pe 1, 2,
4 și 8 procesoare?
c. La ce valoare trebuie redus CPI-ul instrucțiunilor load/store pentru un singur procesor pentru ca
acesta să aibă aceleași performanțe cu patru procesoare ce utilizează valorile originale ale CPI?
c. Dacă numărul de die per wafer este crescut cu 10% și defectele pe unitatea de arie cresc cu 15%,
calculația aria die și yield.
b. Calculați SPECratio.
9
c. Calculați creșterea timpului CPU dacă numărul de instrucțiuni ale banchmark-ului crește cu 10%
fără a afecta CPI-ul.
d. Calculați creșterea timpului CPU dacă numărul de instrucțiuni ale banchmark-ului crește cu 10%
iar CPI-ul crește cu 5%.
f. Presupuneți că dezvoltați o nouă versiune de procesor AMD Barcelona cu un ceas de 4 GHz. Aţi
adăugat câteva instrucţiuni adiţionale setului de instrucţiuni astfel încât numărul de instrucţiuni a
fost redus cu 15%. Timpul de execuţie s-a redus la 700s şi noul SPECratio este 13,7. Găsiţi noul
CPI.
g. Această valoare este mai mare decât aceea obţinută la 1.11.1 deşi ceasul a crescut de la 3 la 4
GHz. Determinați situația în care creșterea CPI este similară creșterii frecvenței ceasului. Dacă nu
sunt similare explicați de ce.
i. Pentru un al doilea benchmark, libquantum, presupuneți că timpul de execuție este 960ns, CPI de
1,61,și ceasul este de 3 GHz. Dacă timpul de execuție este redus cu 10% fără a afecta CPI-ul și cu
un ceas de 4 GHz, determinați numărul de instrucțiuni.
j. Determinați ceasul necesar pentru o nouă reducere cu 10% a timpului CPU menținând numărul de
instrucțiuni și CPI-ul.
k. Determinați ceasul dacă CPI se reduce cu 15% și timpul CPU cu 20%, în timp ce numărul de
instrucțiuni rămâne neschimbat.
b. O altă interpretare greșită este aceea de a considera că procesorul care execută mai multe
instrucțiuni va avea un timp CPU mai mare. Considerând că procesorul P1 execută o secvență de
1,0E9 și că CPI-ul celor două procesoare nu se schimbă, determinați numărul de instrucțiuni pe
care le poate executa P2 în același timp necesar ca P1 să execute cele 1,0E9 instrucțiuni.
c. O altă interpretare greșită comună este aceea a utilizării MIPS pentru a compara performanțele a
două procesoare, și se consideră că procesorul cu MIPS mai mare este mai performant. Verificați
dacă este valabil pentru P1 și P2.
d. O altă interpretare greșită este utilizarea MFLOPS. Presupuneți că 40% din instrucțiunile executate
atât de P1 cât și de P2 sunt instrucțiuni în virgulă flotantă. Găsiți interpretarea MFLOPS greșită
pentru programe.
b. Cât de mult se reduce timpul pentru operațiile INT dacă timpul total se reduce cu 20%?
11
b. Cât de mult trebuie îmbunătățit CPI-ul instrucțiunilor L/S dacă dorim ca programul să ruleze de
două ori mai repede?
c. De câte ori este îmbunătățit timpul de execuție al programului dacă CPI pentru instrucțiunile INT și
FP este redus cu 40% și CPI pentru instrucțiunile L/S și de salt este redus cu 30%.
12