CN2-lecture12

download CN2-lecture12

of 46

Transcript of CN2-lecture12

  • 8/12/2019 CN2-lecture12

    1/46

    Calculatoare Numerice (2)

    - Cursul 11 Multiprocesoare 2

    20.02.20131

    Facultatea de Automatic i Calculatoare Universitatea Politehnica Bucureti

  • 8/12/2019 CN2-lecture12

    2/46

    Comic of the day

    2

    http://dilbert.com/strips/comic/1992-07-18/

    http://dilbert.com/strips/comic/1992-07-18/http://dilbert.com/strips/comic/1992-07-18/http://dilbert.com/strips/comic/1992-07-18/http://dilbert.com/strips/comic/1992-07-18/http://dilbert.com/strips/comic/1992-07-18/http://dilbert.com/strips/comic/1992-07-18/
  • 8/12/2019 CN2-lecture12

    3/46

  • 8/12/2019 CN2-lecture12

    4/46

    Reele de interconectareProcesor-Memorie

    Reelele fluture i Bene: exemple de reele de interconectare procesor -memorie

    (a) Butterfly network (b) Bene network

    0

    2

    4

    6

    8

    10

    12

    14

    Processors Memories

    Pr

    ocessors

    Memories

    1

    3

    5

    7

    9

    11

    13

    15

    0

    2

    4

    6

    8

    10

    12

    14

    1

    3

    5

    7

    9

    11

    13

    15

    0

    2

    4

    6

    0

    2

    4

    6

    1

    3

    5

    7

    1

    3

    5

    7

    Row 0

    Row 1

    Row 2

    Row 3

    Row 4

    Row 5

    Row 6

    Row 7

  • 8/12/2019 CN2-lecture12

    5/46

    Reele de interconectareProcesor-Memorie

    Interconectarea a opt procesoare la 256 bancuri de memorie la Cray Y-MP(1988), un supercomputer cu procesoare vectoriale multiple

    0

    1

    2

    3

    4

    5

    6

    7

    8 8

    8 8

    8 8

    8 8

    4 4

    4 4

    4 4

    4 4

    4 4

    4 4

    4 4

    4 4

    Sections Subsections Memory banks

    0, 4, 8, 12, 16, 20, 24, 2832, 36, 40, 44, 48, 52, 56, 60

    1, 5, 9, 13, 17, 21, 25, 29

    2, 6, 10, 14, 18, 22, 26, 30

    3, 7, 11, 15, 19, 23, 27, 31

    Processors

    1 8 switches224, 228, 232, 236, . . . , 252

    225, 229, 233, 237, . . . , 253

    226, 230, 234, 238, . . . , 254

    227, 231, 235, 239, . . . , 255

    8/

    8/

    8/

    8/

  • 8/12/2019 CN2-lecture12

    6/46

    6

    Consistena secvenial Model de memo rie

    A system is sequentially consistent if the result ofany execution is the same as if the operations of allthe processors were executed in some sequentialorder, and the operations of each individual processorappear in the order specified by the program

    Leslie Lamport

    Sequential Consistency = ntreesere arbitrar cu pstrarea ordinei referinelor la memorie pentru programele secveniale

    M

    P P P P P P

  • 8/12/2019 CN2-lecture12

    7/46

    7

    Consistena secvenial Task- uri secveniale concurente : T1, T2Variabile partajate: X, Y (ini ial X = 0, Y = 10)

    T1: T2:Store (X), 1 (X = 1) Load R 1 , (Y)Store (Y), 11 (Y = 11) Store (Y), R1 (Y= Y)

    Load R 2 , (X)Store (X), R2 (X= X)

    Care sunt rspunsurile corecte pentru X i Y ?

    (X,Y) {(1,11), (0,10), (1,10), (0,11)} ?

    Dac y este 11 atunci x nu poate fi 0

  • 8/12/2019 CN2-lecture12

    8/46

    8

    Consistena secvenial Consistena secvenial impune mai multe contrngeri

    de ordonare de memorie ca i cele impuse dedependenele de memorie ale programelor uni -procesor( )

    Care sunt cele din exemplele noastre ?

    T1: T2:Store (X), 1 (X = 1) Load R 1 , (Y)Store (Y), 11 (Y = 11) Store (Y), R1 (Y= Y)

    Load R 2 , (X)Store (X), R2 (X= X)

    Cerine adiionale SC

    Poate un sistem cu cache i out-of-orderexecution s pun la dispoziie o imagine consistentsecvenial a memoriei?

  • 8/12/2019 CN2-lecture12

    9/469

    Excluziunea mutuala si instructiuni blocante

    Instruciuni blocante atomice read-modify-writee.g., Test&Set, Fetch&Add, Swap vs

    Instruciuni atomice non -blocante read-modify-writee.g., Compare&Swap,

    Load-reserve/Store-conditional vsProtocoale bazate pe operaii Load Store obinuite

    Performana depinde de mai muli factori :degree of contention,cache-uri,out-of-order execution i Loads & Stores

  • 8/12/2019 CN2-lecture12

    10/46

    Probleme n implementareaConsistenei Secveniale

    Implentarea CS este complicat de dou probleme

    Capabiliti de execuie Out-of-order Load(a); Load(b) yes Load(a); Store(b) yes if a bStore(a); Load(b) yes if a bStore(a); Store(b) yes if a b

    Cache-uriCache- urile pot preveni ca efectul unui store s fie vzut de alte procesoare

    M

    P P P P P P

  • 8/12/2019 CN2-lecture12

    11/46

    11

    Bariere la memorieIns t ruc iuni care secvenializeaz accesul la memorie

    Procesoarele cu arhitecturi de memorie slab-cuplate (ex.Permit reordonarea op. Loads & Stores la adrese diferite)trebuie s implementeze bariere la memorie (instruciuni)pentru a fora serializarea acceselor la memorie

    Exemple de procesoare cu memorii slab-cuplate:Sparc V8 (TSO,PSO): MembarSparc V9 (RMO):

    Membar #LoadLoad, Membar #LoadStoreMembar #StoreLoad, Membar #StoreStore

    PowerPC (WO): Sync, EIEIOBarierele la memorie (Memory fences ) sunt operaii costisitoare dar pot fi folosite numai atunci cnd sunt necesare

  • 8/12/2019 CN2-lecture12

    12/46

    12

    Folosirea barierelor la memorie

    Producer posting Item x:Load R tail , (tail)Store (R tail ), xMembar SS Rtail =R tail +1Store (tail), R tail

    Consumer:Load R head , (head)

    spin: Load R tail , (tail)if R head ==R tail goto spinMembar LL

    Load R, (R head )Rhead =R head +1Store (head), R head process(R)

    Producer Consumer

    tail head

    Rtail Rtail Rhead R

    ensures that tail ptris not updated before

    x has been stored

    ensures that R isnot loaded before

    x has been stored

  • 8/12/2019 CN2-lecture12

    13/46

    Data-Race Free Programsa.k.a. Proper ly Sync hron ized Programs

    Process 1 ...Acquire(mutex);

    < critical section>Release(mutex);

    Process 2 ...Acquire(mutex);

    < critical section>Release(mutex);

    Variabilele de sincronizare (e.g. mutex) sunt separate devariabilele de date

    Accesele la variabilele partajate de date sunt protejate n regiunile critice

    n u avem conflicte de date n afar de lock -uri

    n general, nu poate fi dovedit c un program este lipsit de conflicte de date.

  • 8/12/2019 CN2-lecture12

    14/46

    Bariere pentru programeleconcurente

    Process 1 ...Acquire(mutex);membar;

    < critical section>

    membar;Release(mutex);

    Process 2 ...Acquire(mutex);membar;

    < critical section>

    membar;Release(mutex);

    Modelul de memorie permite reordonarea instruciunilor dectre compilator, ct timp aceast reordonare nu este fcutpeste o barier Procesorul nu trebuie s fac prefetch sau s speculeze peste o barier

  • 8/12/2019 CN2-lecture12

    15/46

    Excluziune mutual folosind Load/Store

    Un protocol bazat pe dou variabile partajate c1 i c2.Ini ial c1 i c2 sunt 0 (not busy)

    Care este problema?

    Process 1 ...

    c1=1;L: if c2=1 then go to L< critical section>

    c1=0;

    Process 2 ...

    c2=1;L: if c1=1 then go to L

    < critical section>c2=0;

    Deadlock!

  • 8/12/2019 CN2-lecture12

    16/46

    Excludere mutual : a doua ncercare Pentru a evita deadlock , las un proces s renune la lock

    (i.e. Process 1 seteaz c1 la 0) ct timp ateapt .

    Deadlock nu mai este posibil dar este o posibilitate redus de livelock .

    Un proces nenorocos poate s nu intre niciodat n seciunea critic starvation

    Process 1 ...

    L: c1=1;if c2=1 then

    { c1=0; go to L}< critical section>

    c1=0

    Process 2 ...

    L: c2=1;if c1=1 then

    { c2=0; go to L}< critical section>

    c2=0

  • 8/12/2019 CN2-lecture12

    17/46

    Un protocol pentru excludere mutual T. Dek k er, 1966

    Process 1 ...c1=1;turn = 1;

    L: if c2=1 & turn=1then go to L

    < critical section>c1=0;

    Protocol bazat pe trei variabile partajate c1, c2 i turn.

    Iniial, c1 i c2 sunt 0 (not busy)

    turn = i asigur c doar procesul i poate s atepte variabilele c1 i c2 asigur excluderea mutual Solu ia pentr n procese a fost dat de Dijkstrai este puin ma i complicat !

    Process 2 ...c2=1;turn = 2;

    L: if c1=1 & turn=2then go to L

    < critical section>c2=0;

  • 8/12/2019 CN2-lecture12

    18/46

    Analiza algoritmului lui Dekker

    ... Process 1

    c1=1;turn = 1;L: if c2=1 & turn=1

    then go to L< critical section>

    c1=0;

    ... Process 2

    c2=1; turn = 2;L: if c1=1 & turn=2

    then go to L< critical section>

    c2=0; S

    c e n a r

    i o 1

    ... Process 1 c1=1;turn = 1;

    L: if c2=1 & turn=1then go to L< critical section>

    c1=0;

    ... Process 2 c2=1;turn = 2;

    L: if c1=1 & turn=2then go to L< critical section>

    c2=0; S

    c e n a r

    i o

    2

  • 8/12/2019 CN2-lecture12

    19/46

    19

    N-process Mutual ExclusionLamports Bakery Algorithm

    Process i

    choosing[i] = 1;num[i] = max(num[0], , num[N -1]) + 1;choosing[i] = 0;

    for(j = 0; j < N; j++) {while( choosing[j] );while( num[j] &&

    ( ( num[j] < num[i] ) ||( num[j] == num[i] && j < i ) ) );

    }

    num[i] = 0;

    Initially num[j] = 0, for all jEntry Code

    Exit Code

  • 8/12/2019 CN2-lecture12

    20/46

    20

    Consiste na memoriei la SMP-uri

    Presupunem c CPU-1 actualizeaz A la 200 .write-back : memoria si cache -2 au valori vechi

    write-through : cache-2 are valoarea veche

    Conteaz aceste valori neactualizate ?Cum este vzut memoria partajat de software?

    cache-1A 100

    CPU-Memory bus

    CPU-1 CPU-2

    cache-2A 100

    memoryA 100

  • 8/12/2019 CN2-lecture12

    21/46

    Write-back Caches & SC

    T1 is executed

    prog T2LD Y, R1

    ST Y, R1 LD X, R2ST X,R2

    prog T1ST X, 1

    ST Y,11

    cache-2cache-1 memoryX = 0

    Y =10X= Y=

    X= 1

    Y= 11

    Y =

    Y=X =X=

    cache-1 writes back YX = 0Y = 11X= Y=

    X= 1Y=11

    Y =Y=X =X=

    X = 1Y =11X= Y=

    X= 1Y=11

    Y = 11Y= 11 X = 0X= 0 cache-1 writes back X

    X = 0Y =11X= Y=

    X= 1Y=11

    Y = 11Y=11X = 0X= 0

    T2 executed

    X = 1Y =11X= 0Y=11

    X= 1Y=11

    Y =11Y=11X = 0X= 0

    cache-2 writes back X & Y

  • 8/12/2019 CN2-lecture12

    22/46

    Write-through Caches & SCcache-2

    Y =Y=X = 0X=

    memoryX = 0Y =10X= Y=

    cache-1X= 0Y=10

    prog T2LD Y, R1

    ST Y, R1 LD X, R2ST X,R2

    prog T1

    ST X, 1ST Y,11

    Cache-urile write-through nu meninnici consistena secvenial

    T1 executedY =

    Y=X = 0X=

    X = 1

    Y = 11X= Y=

    X= 1

    Y= 11

    T2 executed Y = 11Y=11X = 0X= 0

    X = 1Y =11X= 0Y=11

    X= 1Y=11

  • 8/12/2019 CN2-lecture12

    23/46

    Meninerea consisteneisecveniale (CS) CS este suficient pentru programe tip

    producer-consumer i cu excluziune mutual (e.g., Dekker)

    Copiile multiple ale unei locaii n diferite Cache-uri pot cauza degradarea CS.

    Este nevoie de suport hardware pentru doar un singur procesor la un moment datare permisiune de write la o locaie de memorie

    nici un procesor nu poate s ncarce o copie a vechii locaii dup o scriere Protocoale de coeren a cache -ului

  • 8/12/2019 CN2-lecture12

    24/46

    Protocoale de menin e re a coereneicache pentru CS

    write request: adresa este invalidat ( actualizat ) n toat ecache- urile nainte (dup) o operaie de write

    read request:

    dac o este gasit o copie murdar ntr -uncache, se efectueaz un write -back nainte decitirea memoriei

    Ne vom concentra pe protocoale deInvalidare i nu pe protocoale Update

  • 8/12/2019 CN2-lecture12

    25/46

    Warmup: Parallel I/O

    (DMA vine de la Direct Memory Access)

    Fie Cache-ul fie DMA-ulpot s fie Bus Master i s

    fac transferuri la un mom. dat DISK

    DMA

    PhysicalMemory

    Proc.

    R/W

    Data (D) Cache

    Address (A)

    AD

    R/W

    Page transfers

    occur while theProcessor is running

    MemoryBus

  • 8/12/2019 CN2-lecture12

    26/46

    Probleme cu Parallel I/O

    Memorie Disc: Memoria fizic poate fi

    neactualizat dac copia din Cache este murdar Disc Memorie: Cache- ul poate s conin datevechi i s nu vad write -urile la memorie

    DISK

    DMA

    PhysicalMemory

    Proc.Cache

    MemoryBus

    Cached portionsof page

    DMA transfers

    C h i l i l i

  • 8/12/2019 CN2-lecture12

    27/46

    Cache- uri multiple icoerena cache -urilor

    Memoriile cache dedicate fiecrui procesor reduc traficul la memoriaprocipal (prin reeaua de interconectare) dar introduc o serie deprobleme de consisten.

    0 0

    1 1

    m 1

    Processor-to-

    memorynetwork

    p 1

    Processor-to-

    processornetwork

    Processors Caches Memory modules

    Parallel I/O

    . . .

    .

    .

    .

    .

    .

    .

  • 8/12/2019 CN2-lecture12

    28/46

    Starea copiilor de date

    Diferite tipuri de blocuri de date din cache pentru un procesor paralel cumemorie principal centralizat i cache -uri locale pentru fiecare procesor

    0

    1 Processor-to-

    memorynetwork

    p 1

    Processor-to-

    processornetwork

    Processors Caches Memory modules

    Parallel I/O

    . . .

    .

    .

    .

    .

    .

    .

    w x

    y

    z

    wz

    wy

    xz

    Multiple consistent

    Single consistent

    Single inconsistent

    Invalid

    m 1

    0

    1

  • 8/12/2019 CN2-lecture12

    29/46

    Snoopy Cache Goo dm an 1983Idee: S avem un cache care spioneaz (snoop upon)transferurile DMA, i atunci do the right thing Etichetele snoopy cache sunt dual-port

    Proc.

    Cache

    Snoopy read portattached to MemoryBusData

    (lines)

    Tags andState

    A

    D

    R/W

    Used to drive Memory Buswhen Cache is Bus Master

    A

    R/W

    A i il S C h t

  • 8/12/2019 CN2-lecture12

    30/46

    Aciunile Snoopy Cache pentruDMA

    Observed BusCycle Cache State Cache Action

    Address not cached

    DMA Read Cached, unmodifiedMemory Disk Cached, modified

    Address not cached

    DMA Write Cached, unmodified

    Disk Memory Cached, modified

    No action

    No action

    No action

    Cache intervenes

    Cache purges its copy

    ???

  • 8/12/2019 CN2-lecture12

    31/46

    Shared Memory Multiprocessor

    Folosete mecanismul snoopy pentru a pstraconsistena memoriei pentru toate procesoarele

    M1

    M2

    M3

    SnoopyCache

    DMA

    PhysicalMemory

    MemoryBus

    SnoopyCache

    SnoopyCache

    DISKS

    Protocol snoopy de

  • 8/12/2019 CN2-lecture12

    32/46

    Protocol snoopy decoeren cache

    Automat FSM pentru un protocol de coeren cache ce folosete cachewrite-back

    CPU reador write hit

    Invalid

    Shared(read-only)

    Exclusive(writable)

    CPU read hit

    CPU read miss:signal read miss

    on bus

    CPU w rite miss:signal write miss

    on bus

    CPU w rite hit: signal write miss on bus

    Bus write miss:write back cache line

    Bus write miss

    Bus read miss: write back cache line

    P

    C

    P

    C

    P

    C

    P

    C

    BusMemory

  • 8/12/2019 CN2-lecture12

    33/46

    Diagrama de tranziii pentru Cache Pro toco lu l MSI

    M

    S I

    M: ModifiedS : Shared

    I : Invalid

    Fiecare linie din cache are tag

    Address tagBiistare

    Write miss

    Alt procesor dorete s scrie

    Read

    miss

    Alt procesor dorete s scrie

    Citire de laOrice procesor

    P1 citete sau scrie

    Starea cachepentruprocesorul P 1

    E l d

  • 8/12/2019 CN2-lecture12

    34/46

    Exemplu cu dou procesoare (Citesc i scriu aceeai linie din cache )

    M

    S I

    Write miss

    Readmiss

    P2 intent to write

    P2 reads,P

    1 writes back

    P1 readsor writes

    P2 intent to write

    P1

    M

    S I

    Write miss

    Readmiss

    P1 intent to write

    P1 reads,P2 writes back

    P2 readsor writes

    P1 intent to write

    P2

    P1 readsP1 writesP2 readsP2 writes

    P1 writesP2 writes

    P1 reads

    P1 writes

  • 8/12/2019 CN2-lecture12

    35/46

    Observa ie

    Dac o linie este n starea M atunci nici un alt cachenu poate s aib o copie a linei !

    Memor ia rmne coerent, nu pot exista copii diferite

    M

    S I

    Write miss

    Alt procesor dorete s scrie

    Readmiss

    Alt procesor dorete s scrie

    Citire de laOrice procesor

    P1 citete sau scrie

    Starea cachepentruprocesorul P 1

    MESI P l MSI b i

  • 8/12/2019 CN2-lecture12

    36/46

    36

    MESI: Protocol MSI mbuntit performane mrite pentru date locale

    M E

    S I

    M: Modified Exclusive E: Exclusive, unmodifiedS : Shared I: Invalid

    Fiecare linie are un tagAddress tag

    Biistare

    Write missAlt procesordorete s scrie

    Read miss,shared

    Alt procesordorete s scrie

    P1 write

    Citire de oriceprocesor

    Alt procesor citete P1 face write back

    P1 readP1 writeor read

    Starea cache pt.procesorul P1

    Read miss,not shared

    Implementarea Algoritmului

  • 8/12/2019 CN2-lecture12

    37/46

    Implementarea AlgoritmuluiSnoopy Cache

    Structura principal a unui algoritm snoopy de coeren cache

    Tags

    Cachedataarray

    Duplicate tagsand state store

    for snoop side

    CPU Main tags andstate store for

    processor side

    =?

    =?

    Processor sidecache control

    Snoop sidecache control

    Addr Addr CmdCmd BufferBufferSnoopstate

    Systembus

    Tag

    Addr Cmd

    State

    Snoop optimizat cu cache uri

  • 8/12/2019 CN2-lecture12

    38/46

    Snooper Snooper Snooper Snooper

    Snoop optimizat cu cache-uriLevel-2

    Procesoarele au de obice cache pe dou niveluri mic L1, mare L2 (de obicei ambele on chip acum)

    Proprietatea de incluziune: intrrile din L1 trebuie s fie n L2

    invalidare n L2 invalida re n L1 Snooping n L2 nu afecteaz limea de band CPU-L1

    Ce probleme pot s apar ?

    CPU

    L1 $

    L2 $

    CPU

    L1 $

    L2 $

    CPU

    L1 $

    L2 $

    CPU

    L1 $

    L2 $

  • 8/12/2019 CN2-lecture12

    39/46

    Interven ie

    Cnd avem un read -miss pentru A n cache-2,se emite pe bus un read request pentru A Cache-1 trebuie s fac vizibil i s i schimbe starea n shared Memoria poate s rspund i ea la cerere !

    tie memoria c are date vechi? Cache-1 trebuie s intervin prin controllerul dememorie pentru a da datele corecte pentru cache-2

    cache-1A 200

    CPU-Memory bus

    CPU-1 CPU-2

    cache-2

    memory (stale data)A 100

  • 8/12/2019 CN2-lecture12

    40/46

    False Sharing

    state blk addr data0 data1 ... dataN

    Un bloc cache conine ma i mult de un cuvnt dedate

    Coerena cache -ului este fcut la nivel e bloc inu la nivel de cuvnt

    Presupunem c M1 scrie word i i M2 scrie word k iambele cuvinte au aceeai adres de bloc .Ce se poate ntmpla ?

    Si i i h il

  • 8/12/2019 CN2-lecture12

    41/46

    41

    Sincroniza rea i cache -urile:P robleme de performan

    Protocoalele de coeren a cache -ului vor face mutex-ul s fac ping-

    pong ntre cache -urile lui P1 i P2.Acest fenomen poate fi redus prin citirea locaiei iniiale a mutex-ului (non- atomic) i execuia unui schimb doar dac acesta are valoareazero.

    cache

    Processor 1R 1

    L: swap (mutex), R;if then goto L;

    M[mutex] 0;

    Processor 2R 1

    L: swap (mutex), R;if then goto L;

    M[mutex] 0;

    Processor 3R 1

    L: swap (mutex), R;if then goto L;

    M[mutex] 0;

    CPU-Memory Bus

    mutex=1cache cache

    Performan a i traficul pe

  • 8/12/2019 CN2-lecture12

    42/46

    Performan a i traficul pemagistrale

    n general, o instruciune read-modify-writenecesit dou operaii pe magistral, dac nuavem alte operaii la memorie de ctre alteprocesoare

    ntr-un scenariu multiprocesor, accesul tuturorcelolalte procesoare la magistral trebuie s fieblocat pe durata execuiei operaiei atomice deread-modify-write

    costisitor pentru magistrale simple

    ISA-urile moderne folosescload-reservestore-conditional

    L d & S di i l

  • 8/12/2019 CN2-lecture12

    43/46

    Load-reserve & Store-conditional

    Dac un alt procesor vede o tranzacie de store laadresa din registrul de rezervare, bitul de rezervare

    este setat la 0 Mai multe procesoare pot rezerva a simultan Aceste instruciuni sunt similare cu load i store obinuite,din pct de vedere al traficului pe bus

    Registre speciale pentru stocarea flag-urilor dereserve, adresa i rezultatul s tore-conditionalLoad-reserve R, (a):

    ;R M[a];

    Store-conditional (a), R:if == then cancel other procs

    reservation on a;M[a] ;

    status succeed;else status fail;

    P f

  • 8/12/2019 CN2-lecture12

    44/46

    Performan :Lo ad-reserve & Store-con di t ion al

    Numrul total de tranzacii pe bus nu este

    neaprat redus, dar spargerea unei instruciuniatomice n load-reserve & store-conditional:

    crete utilizarea magistralei , mai ales pentrumagistralele care efectueaz tranzacii n maimulte etape

    reduce efectul ping-pong pentru cachedeoarece procesoarele care ncearc s obinun semafor nu trebuie s fac un store defiecare dat

    Limea de band limiteaz

  • 8/12/2019 CN2-lecture12

    45/46

    Limea de band limiteazperformanele Avem un sistem multiprocesor cu memorie partajat construit n jurulunui singur bus cu limea de band de x GB/s. Cuvintele de instruciuni i date au fiecare 4B lime, fiecare instruciune necesit accesul n medie la 1.4 cuvinte din memorie (inclusiv la instruciunea nsi) . Ratacombinat de hit a cache-urilor este de 98%. Calculai limita sperioar aperformanei sistemului multiprocesor n GIPS. Liniile de adres suntseparate i nu afecteaz limea de band de date.

    Solu ie

    Execuia unei instruciuni implic un transfer de 1.4 0.02 4 = 0.112 B. Astfel, limita absolut a perfomanei este de x /0.112 = 8.93 x GIPS. Dac presupunem o lime a busului de 32 de bii, c nici un ciclu pe bus nu

    se irosete i o frecven de ceas pe bus de y GHz, limita superioar aperfomanei devine 286 y GIPS. Magistralele opereaz la frecvene de0.1 - 1 GHz. Prin urmare, o performan apropiat de 1 TIPS (chiar i TIPS) este peste capabilitile acestui tip de arhitectur .

  • 8/12/2019 CN2-lecture12

    46/46

    Acknowledgements

    These slides contain material developed and copyright by:

    Arvind (MIT) Krste Asanovic (MIT/UCB) Joel Emer (Intel/MIT) James Hoe (CMU) John Kubiatowicz (UCB) David Patterson (UCB)

    MIT material derived from course 6.823UCB material derived from course CS252