.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Architettura degli elaboratori e delle reti (http://www.dsy.it/forum/forumdisplay.php?forumid=210)
-- CPU singolo ciclo BRANCH (http://www.dsy.it/forum/showthread.php?threadid=31070)


Posted by Gehur on 13-06-2007 09:45:

CPU singolo ciclo BRANCH

Nell' istruzione branch l'indirizzo di salto è calcolato in 2 passi

1 - calcolo dello spiazzamento in byte: offset*4
2 - somma base+offset

non capisco a cosa serve moltiplicare l'offset per 4, chi me lo spiega???


Posted by Skilotto83 on 13-06-2007 10:20:

mi pare che moltiplicare per 4 sia lo stesso che shiftare a sx di due..che è quello che devi fare...

__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)

MSN andrea.poretti(at)hotmail.it


Posted by Gehur on 13-06-2007 11:37:

ma perchè devo shiftare??


Posted by Skilotto83 on 13-06-2007 12:49:

ops..
non era quello il motivo..

La moltiplicazione per 4 la fai perchè l'offset ti viene fornito in byte e tu devi calcolare un nuovo indirizzo e per fare cio' hai bisogno i bit che poi sommerai al base..

__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)

MSN andrea.poretti(at)hotmail.it


Posted by Gehur on 13-06-2007 19:20:

ma perchè nel calcolare l'indirizzo di una lw non avviene la moltiplicazione per 4 ma solo l'addizione

ps:
so che non è fondamentale per passare l'esame ma volevo capire

e poi un altra cosa nelle cpu pipeline quando si parla di forwarding per le criticità di dati, in un primo esempio preleva i dati all' inizio di mem, nel secondo esempio alla fine di mem, ma allora dove si trovano sti dati? a me sembra sensato all' inizio di mem, cioè alla fine di ex


Posted by wizard on 14-06-2007 09:44:

Cool

Beh, l'indirizzo normalmente si riferisce al singolo byte. Lavorando però con istruzioni word a 32 bit (1 word = 4 bytes) possiamo solo effettuare spostamenti su locazioni che siano multipli di 4. La base lo è già per definizione quindi:

(esempio)
base = indirizzo 200 (multiplo di 4)
vogliamo saltare di 10 istruzioni perché il branch richiede l'undicesima: 10 * 4 = 40
prossima locazione = 200 + 40 = 240 (esattamente + 10 istruzioni da 4 bytes cad.)

Per quanto riguarda il forwarding non ho capito di quale esempio stai parlando (se sul libro di Patterson/Hennessy o sugli appunti). Comunque, come c'é scritto negli appunti, l'informazione che serve all'istruzione successiva è disponibile all'uscita della ALU, prima della sua collocazione in MEM.
Diverso è per lo stallo, in cui per effettuare una LW bisogna ovviamente leggere prima la MEM

ciaoo :-D


Posted by Gehur on 14-06-2007 10:54:

mi riferivo alle slide, sei stato chiaro , dovrei aver risolto tutto dopo magari lo rileggo, grazie!


ok capito tutto...


Posted by truffy on 19-03-2008 09:41:

Re: CPU singolo ciclo BRANCH

Salve qualcuno sa dirmi quanti cicli di clock sono necessari per l'esecuzione di beq e j in un' unità a ciclo singolo e a ciclo multiplo.:razz:












Originally posted by Gehur
Nell' istruzione branch l'indirizzo di salto è calcolato in 2 passi

1 - calcolo dello spiazzamento in byte: offset*4
2 - somma base+offset

non capisco a cosa serve moltiplicare l'offset per 4, chi me lo spiega???


All times are GMT. The time now is 01:52.
Show all 8 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.