Pages: 1 [2] 3 4 ... 24   Go Down
Print
Author Topic: AA 2010-2011: Quesiti a risposta aperta  (Read 85743 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.519


« Reply #15 on: 18-04-2011, 21:34:12 »


Per un algoritmo sequenziale in cui ogni passo dipende dall'esito dei precedenti, è più efficiente impiegare un array di processori o un processore a pipeline?

Sicuramente un array di processori, dato che è possibile eseguire più operazioni sui dati in contemporanea senza intaccare le successive istruzioni. Una pipeline sarebbe fortemente inefficiente dato che se ogni istruzione dipende dalla precedente il processore dovrebbe eseguirle in sequenza (come un qualunque altro processore) per non intaccare le dipendenze successive.
Vale esattamente il contrario: poiché, per ipotesi, ogni passo dell'algoritmo dipende dall'esito dei precedenti, il parallelismo di un array di processori non può essere sfruttato, perché richiederebbe l'esecuzione simultanea di più istruzioni, ciascuna delle quali deve invece attendere la fine dell'esecuzione della precedente. Il vantaggio della pipeline sta invece nel fatto che parallelizza l'esecuzione di istruzioni in fasi diverse del ciclo esecutivo: sebbene il completamento dell'esecuzione di ciascuna istruzione avvenga, anche in questo caso, dopo il completamento della precedente, le fasi di prelievo e decodifica possono aver luogo in parallelo con l'esecuzione di istruzioni precedenti in fasi diverse.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.519


« Reply #16 on: 18-04-2011, 21:39:51 »

Descrivere brevemente il principio di località, che è alla base di tutti i sistemi di memoria cache.
località spaziale: quando in un intervallo di tempo il processore utilizza dati o istruzioni che probabilmente si trovano in zone di memoria che sono spazialmente vicine.

località temporale: tale principio afferma che se un programma utilizza una certa istruzione o dato è molto probabile che tale dato o istruzione venga riutilizzata di nuovo nel tempo.
Il principio di località per le memorie cache pone in relazione i due aspetti di località, spaziale e temporale: asserisce che i riferimenti a memoria effettuati in un breve intervallo di tempo sono molto probabilmente relativi a locazioni di memoria vicine fra loro.
Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #17 on: 19-04-2011, 10:12:23 »

La capacità dei dischi Blu-Ray supera di un fattore 4 quella dei DVD più capaci, ma potrebbero passare anni prima che i dischi Blu-Ray li sostituiscano sul mercato. Perché
Sicuramente per i costi, un disco Bluray costa molto di più anche rispetto a un DVD-Dual Layer, il gap aumenta se si considerano i dischi riscrivibili. Inoltre il costo relativo al lettore e masterizzatore e la ridotta velocità di scrittura (si parla di 10x nei migliori masterizzatori) non agevolano. Il discorso vale anche nel caso dei film prodotti su bluray, il costo si aggira sui 20 euro (dopo qualche mese dall'uscita), ma anche questi devo essere dotati di un ottimo lettore bluray (pena artefatti su schermo) e un pannello di buonissima qualità.

Spiegare perché nei RAID di livello 1 si può ottenere fino al doppio del throughput di lettura, rispetto ai RAID di livello 0, mentre il throughput di scrittura non è migliore.
Il RAID di livello 1 si basa sul mirroring, ovvero la copia esatta dei file su due o più dischi. In questo modo è possibile leggere da un disco mentre gli altri sono occupati. La scrittura è più lenta perchè bisogna scrivere su tutti i dischi in modo da mantenere le copie sempre uguali. Nel RAID 0 invece i dati vengono suddivisi equamente tra i dischi, in questo modo la scrittura deve essere fatta su un solo hard disk, mentre la lettura, in caso di disco occupato, risulterà più lenta.

Il RAID di livello 3 corregge errori singoli usando un disco di parità, il RAID di livello 2 ne impiega di più. Quale vantaggio ha questo rispetto all'altro, per la correzione di errori
Non sono sicuro di questa domanda, su wikipedia non si parla di più dischi nel raid 2. Riporto le parole

Il RAID-2 infatti, frammenta i dati in bit al posto di blocchi e sfruttando un codice di Hamming per la correzione d’errore che facilita la correzione di errori su singoli bit e di individuare doppi errori.
Un sistema RAID-3 dedica un disco alla parità del volume ed utilizza una frammentazione al livello di byte su tutti i drive.
Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.519


« Reply #18 on: 19-04-2011, 23:46:32 »

Sicuramente per i costi, un disco Bluray costa molto di più anche rispetto a un DVD-Dual Layer, [...], il costo si aggira sui 20 euro (dopo qualche mese dall'uscita), [...]
Attenzione a non confondere costi e prezzi.  I costi sono costi di produzione, il prezzo è il costo per l'utente; sul prezzo influiscono altri fattori (ad es. commerciali) oltre ai costi di produzione. Tuttavia, anche se i costi di produzione dei Blu-Ray si abbassassero, fino a rendeli competitivi con i DVD, ci vuole tempo per rinnovare sia il mercato dei dispositivi di lettura/scrittura (che si fa con quelli per i DVD, li si butta via?), sia i prodotti stessi già realizzati su DVD.
Quote
Il RAID di livello 1 si basa sul mirroring, ovvero la copia esatta dei file su due o più dischi. In questo modo è possibile leggere da un disco mentre gli altri sono occupati. La scrittura è più lenta perchè bisogna scrivere su tutti i dischi in modo da mantenere le copie sempre uguali.
Vero che il RAID 1 realizza il mirroring, ma l'argomento è decisamente diverso: proprio perché ogni stripe esiste in due copie su due dischi diversi, è possibile parallelizzarne la lettura su due dischi, dunque il througput in lettura raddoppia (nel caso migliore: se il dato da leggere è corto, non si può frammentarne la lettura in due operazioni parallele). La scrittura non è più lenta che nel caso del RAID 0, poiché la scrittura delle due copie avviene con due operazioni eseguite in parallelo, su due dischi diversi. Però non è neanche più veloce, mentre la lettura, come detto, può essere fino a due volte più veloce.
Quote
Il RAID-2 infatti, frammenta i dati in bit al posto di blocchi e sfruttando un codice di Hamming per la correzione d’errore che facilita la correzione di errori su singoli bit e di individuare doppi errori.
Più che "facilita" direi "permette". Il punto è proprio questo: il codice di Hamming impiegato nel RAID 2 corregge gli errori su singolo bit comunque, mentre il codice di parità impiegato nel RAID 3 permette la correzione solo quando è noto quale sia il bit affetto da errore, ad es. quando un disco va fuori servizio.
Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #19 on: 28-04-2011, 11:12:30 »

La velocità di trasferimento dati fra CPU e memoria supera di ordini di grandezza quella delle componenti meccaniche di I/O. Come si evitano le inefficienze causabili da tale sbilancio

Dapprima, dato che il bus era univoco per tutte le periferiche, si utilizzò una tecnica definita furto di cicli..ovvero se nessun dispositivo IO richiede il bus, la CPU utilizza tutti i cicli del bus per accedere alla memoria. Invece, quando un dispositivo IO richiede il bus questo gli viene subito concesso, rallentando di fatto il calcolatore. Successivamente si pensò a rendere più veloce il bus, e infine, si realizzarono più bus . Per rendere il tutto retrocompatibile, il vecchio bus (ISA) aveva un ponte con il nuovo (PCI)...in questo modo la CPU potè utilizzare un bus ad alta velocità e i vecchi dispositivi poterono utilizzare il vecchio bus (con un ponte tra PCI e ISA)

Stimare quanta memoria occorrerebbe in una stampante laser a colori per una bitmap da 520 cm² a 600 dpi, con stampa a mezzitoni da 32 zone per pixel e per colore (1 inch = 2,54 cm, max 5 righe)

Stimare quanto tempo impiega il trasferimento del contenuto di un testo di 300 pagine in codice ASCII, dove ogni pagina abbia circa 4000 caratteri, su un modem da 56 Kbps (max 5 righe).

Stimare quanto tempo impiega il trasferimento del contenuto di un CD stereo, con 700 MB di registrazioni audio, senza compressione, su un modem da 56 Kbps (max 5 righe).

Si abbia un archivio di immagini fotografiche digitali da 16 milioni di pixel ca., a 3 byte/pixel. Quante se ne possono memorizzare in una memoria da 1 GB con fattore di compressione 5 (max 5 righe)?


La codifica ASCII pone 7 bit per carattere...quindi 7 bit * 4000 caratteri a pagina * 300 pagine di codice equivalgono a 8.400.000 bit...il modem trasferisce a 56 kb/s (che dovrebbero essere kilobit per sec) quindi dividendo per 56 si ottiene 150.000 sec, che diviso per 60 sarebbero 2500 minuti.

Un CD audio standard (usato in modo 1) ha 681.984.000 byte di spazio che "tradotti" in bit (quindi moltiplicando per Cool e dividendo per 56 (ovvero basta dividere per 7) dovrebbe risultare 97426000, qualcosa (avrò sbagliato sicuramente  univ)
Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.519


« Reply #20 on: 28-04-2011, 17:49:11 »

Dapprima, dato che il bus era univoco per tutte le periferiche, si utilizzò una tecnica definita furto di cicli..ovvero se nessun dispositivo IO richiede il bus, la CPU utilizza tutti i cicli del bus per accedere alla memoria. Invece, quando un dispositivo IO richiede il bus questo gli viene subito concesso, rallentando di fatto il calcolatore. [....]
La risposta è corretta, ma per completezza occorrerebbe aggiungere che questa tecnica è efficace quando la CPU ha più programmi concorrentemente in esecuzione, così che mentre il programma in attesa del completamento dell'I/O viene messo in stato di attesa, la CPU può essere utilizzata per l'esecuzione di altri programmi.
Quote
La codifica ASCII pone 7 bit per carattere...quindi 7 bit * 4000 caratteri a pagina * 300 pagine di codice equivalgono a 8.400.000 bit...il modem trasferisce a 56 kb/s (che dovrebbero essere kilobit per sec) quindi dividendo per 56 si ottiene 150.000 sec,
veramente no, deve dividere per 56000. Inoltre può assumere che si trasferiscano 8 bit per carattere: il codice ASCII ne definisce 7 come standard universale, ma dedica un altro bit ad estensioni locali.
Quote
Un CD audio standard (usato in modo 1) ha 681.984.000 byte di spazio che "tradotti" in bit (quindi moltiplicando per Cool e dividendo per 56 (ovvero basta dividere per 7) dovrebbe risultare 97426000, qualcosa (avrò sbagliato sicuramente
Stesso errore di prima, deve dividere per 56k: tolga tre zeri...
Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #21 on: 02-05-2011, 11:33:14 »

Scrivere due differenti traduzioni IJVM dell'istruzione Java: i = k+n+5 (max 15 righe).
Code:
BIPUSH 5
IADD
IADD
ISTORE i

Code:
IADD
BIPUSH 5
IADD
ISTORE i

Scrivere un'istruzione Java traducibile nella sequenza di istruzioni IJVM (separate da "," per motivi tipografici): ILOAD j , ILOAD n , ISUB , BIPUSH 2 , ISUB , DUP , IADD , ISTORE i (max 1 riga).
Code:
i = (j-n-2)+(j-n-2);


Scrivere una traduzione IJVM del codice Java: if (i == 0) n = 1; else n = n+i; (max 10 righe).

Code:
        ILOAD i
        IFEQ goto n1; ELSE goto N2;
n1    BIPUSH 1
        ISTORE n
n2    ILOAD n
        IADD
        ISTORE n
Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.519


« Reply #22 on: 04-05-2011, 07:25:39 »

Scrivere due differenti traduzioni IJVM dell'istruzione Java: i = k+n+5 (max 15 righe).
Code:
BIPUSH 5
IADD
IADD
ISTORE i

Code:
IADD
BIPUSH 5
IADD
ISTORE i
Le altre risposte vanno bene, ma in queste manca, in entrambi i casi, una coppia di istruzioni all'inizio, per copiare le variabili locali k e n in cima allo stack.
Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #23 on: 16-05-2011, 10:57:15 »

Scrivere due differenti traduzioni IJVM dell'istruzione Java: i = k+n+5 (max 15 righe).
Code:
BIPUSH 5
IADD
IADD
ISTORE i

Code:
IADD
BIPUSH 5
IADD
ISTORE i
Le altre risposte vanno bene, ma in queste manca, in entrambi i casi, una coppia di istruzioni all'inizio, per copiare le variabili locali k e n in cima allo stack.

Basta inserire in entrambi i codici
ILOAD k
ILOAD n



L'interpretazione dell'istruzione IJVM invokevirtual deve conoscere il numero dei parametri del metodo invocato. Perché (max 5 righe)?
Una volta effettuato correttamente l'invokevirtual, lo stack dovrà contenere appena sopra LV tutti i parametri che sono stati passati a invokevirtual...
La memoria necessaria a contenere questi parametri si conosce a priori leggendo il numero dei parametri del metodo (includendo anche objref)

Nel testo, la microistruzione invokevirtual16 "MDR = SP+H+1; wr", per la sovrascrittura di OBJREF, è erronea. Perché? Come va modificata (max 10 righe)?

Credo che il problema sia MDR = ....., è proprio il valore di MDR ad essere errato.
L'istruzione corretta dovrebbe essere SP = SP + H + 1;

Scrivere una sequenza di microistruzioni MAL che interpreti in Mic-1 l'istruzione JVM POPTWO, che rimuove due parole dalla cima dello stack (max 5 righe).
Code:
SP = SP - 1;
MAR = SP = SP - 1; rd;

TOS = MDR; goto Main1;
« Last Edit: 16-05-2011, 10:59:03 by R3m » Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.519


« Reply #24 on: 17-05-2011, 08:18:56 »

Una volta effettuato correttamente l'invokevirtual, lo stack dovrà contenere appena sopra LV tutti i parametri che sono stati passati a invokevirtual...
Sì, ma i parametri sono posti nello stack prima dell'esecuzione di invokevirtual. Perché, invece, proprio nella interpretazione di invokevirtual è necessario conoscerne il numero?
Quote
Credo che il problema sia MDR = ....., è proprio il valore di MDR ad essere errato.
L'istruzione corretta dovrebbe essere SP = SP + H + 1;
No, l'istruzione corretta è MDR = TOS + H + 1. Il problema è causato dal fatto che H (caricato con un valore da 16 bit nelle due istruzioni precedenti quella erronea) contiene non il numero di variabili locali bensì la dimensione (in parole) del blocco delle variabili locali.

Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #25 on: 17-05-2011, 10:03:35 »

Descrivere due criteri di progetto ISA utili ad ottenere un buon ISA (max 10 righe).
Innanzitutto, dato che L'ISA è l'interfaccia tra hardware e software, dovrebbe garantire un'esecuzione del codice "pulita", ovvero facile da implementare efficientemente per i progettisti hardware, e favorevole alla scrittura di codice di qualità per i progettisti software.
In secondo luogo, dovrebbe definire un insieme di istruzioni utilizzabili da tecnologie presenti e future, e quindi ricade nell'ambito della "buona progettazione".

Qual è la differenza fra disporre di cache di primo livello separate per istruzioni e dati, e avere spazi di indirizzi separati per essi (max 10 righe)?
Cache di primo livello separate permette di avere 2^32 byte di programma e 2^32 byte di dati usando indirizzi a 32 bit. Chiaramente, essendo dati e programma separati tra di loro, risulta impossibile sovrascrivere un programma accidentalmente.  Nel secondo caso, invece, c'è solo uno spazio per gli indirizzi, ma cache differenti contengono porzioni differenti di indirizzi.

In quale/i modalità operative del Pentium 4 (reale, virtuale 8086, protetta) si può ulteriormente distinguere tra modalità kernel e utente? In che consiste la differenza tra le due (max 15 righe)?
La modalità protetta. In realtà i livelli di privilegi sono 4, ma le modalità kernel/utente sono le più utilizzate. In particolare, il livello 0, o kernel, ha accesso completo alla machina. Invece, il livello 3, o utente, ha un accesso limitato, sono bloccate tutte le istruzioni critiche e i registri sono controllati in modo da garantire sempre il funzionamento del sistema.

Minimizzare la lunghezza delle istruzioni può avere effetti opposti sulla velocità del processore; indicare un motivo per cui questa può aumentare ed uno per cui può diminuire (max 10 righe).

Sicuramente, istruzioni più corte portano il processore ad eseguirle più rapidamente rispetto a delle istruzioni lunghe. Tale beneficio si sente anche a livello di bus e di cache, infatti in questi anni di sviluppo dell'informatica i processori si sono evoluti molto più velocemente di bus e cache, e diminuire il numero di dati trasferiti e di dati letti dalla cache gioverebbe non poco. Ovviamente, bisogna valutare bene i problemi che si vengono a creare in fase di decodifica ed esecuzione delle istruzioni. Tali fasi potrebbero risultare più lente a causa della dimensione delle istruzioni.
Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.519


« Reply #26 on: 18-05-2011, 07:20:55 »

Cache di primo livello separate permette di avere 2^32 byte di programma e 2^32 byte di dati usando indirizzi a 32 bit.
Questo è il caso degli spazi di indirizzi separati...
Quote
 Nel secondo caso, invece, c'è solo uno spazio per gli indirizzi, ma cache differenti contengono porzioni differenti di indirizzi.
...infatti.
Quote
La modalità protetta. [...]
OK, ma anche nella modalità virtuale 8086 è possibile distinguere fra il modo utente, in cui viene eseguito il programma che opera in tale modalità, e il modo kernel, in cui viene eseguito il codice del sistema operativo: se, ad es., il programma genera una condizione di errore, che nella modalità reale porterebbe all'arresto del sistema, in quella virtuale ciò non porta all'arresto del sistema, bensì alla terminazione (con segnalazione di errore) del programma detto e al trasferimento del controllo al sistema operativo.
Quote
Sicuramente, istruzioni più corte portano il processore ad eseguirle più rapidamente rispetto a delle istruzioni lunghe.
La domanda qui richiede di indicare il motivo. La successiva spiegazione è un po' troppo generica...
Quote
Tale beneficio si sente anche a livello di bus e di cache, infatti in questi anni di sviluppo dell'informatica i processori si sono evoluti molto più velocemente di bus e cache, e diminuire il numero di dati trasferiti e di dati letti dalla cache gioverebbe non poco.
... occorrerebbe spiegare quale aspetto della differenza di evoluzione costituisce il motivo richiesto. Forse qui lei sottintende che tale aspetto sia la velocità dei dispositivi in questione, ovvero la durata dei rispettivi cicli.
Quote
Ovviamente, bisogna valutare bene i problemi che si vengono a creare in fase di decodifica ed esecuzione delle istruzioni. Tali fasi potrebbero risultare più lente a causa della dimensione delle istruzioni.
Intende di una maggiore o di una minore dimensione delle istruzioni? E perché questa rende più lente le fasi in questione? (Ovvero: specificare il motivo).
Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #27 on: 19-05-2011, 11:24:33 »

Quote
Cache di primo livello separate permette di avere 2^32 byte di programma e 2^32 byte di dati usando indirizzi a 32 bit.
Quote
Questo è il caso degli spazi di indirizzi separati...

Nel secondo caso, invece, c'è solo uno spazio per gli indirizzi, ma cache differenti contengono porzioni differenti di indirizzi.
Quote
...infatti.

La risposta va bene quindi?

Quote
Quote
La modalità protetta. [...]
OK, ma anche nella modalità virtuale 8086 è possibile distinguere fra il modo utente, in cui viene eseguito il programma che opera in tale modalità, e il modo kernel, in cui viene eseguito il codice del sistema operativo: se, ad es., il programma genera una condizione di errore, che nella modalità reale porterebbe all'arresto del sistema, in quella virtuale ciò non porta all'arresto del sistema, bensì alla terminazione (con segnalazione di errore) del programma detto e al trasferimento del controllo al sistema operativo.

Andavano bene sia protetta che virtuale?

Quote
Quote
Ovviamente, bisogna valutare bene i problemi che si vengono a creare in fase di decodifica ed esecuzione delle istruzioni. Tali fasi potrebbero risultare più lente a causa della dimensione delle istruzioni.
Intende di una maggiore o di una minore dimensione delle istruzioni? E perché questa rende più lente le fasi in questione? (Ovvero: specificare il motivo).

Una maggiore dimensione rallenterebbe la fase di decodifica. Per fare un esempio, se abbiamo 32 istruzioni in totale nell'architettura, basterebbe utilizzare un registro a 32 bit settando a 1 il bit n-esimo per decodificare la n-esima istruzione. Per risparmiare memoria, invece, utilizzando un registro più piccolo (es. 16 bit o anche meno) bisogna avere delle particolari configurazioni, che comportano un maggiore dispendio di tempo in fase di decodifica.

Quote
Quote
Tale beneficio si sente anche a livello di bus e di cache, infatti in questi anni di sviluppo dell'informatica i processori si sono evoluti molto più velocemente di bus e cache, e diminuire il numero di dati trasferiti e di dati letti dalla cache gioverebbe non poco.
... occorrerebbe spiegare quale aspetto della differenza di evoluzione costituisce il motivo richiesto. Forse qui lei sottintende che tale aspetto sia la velocità dei dispositivi in questione, ovvero la durata dei rispettivi cicli.

Si intendevo proprio la velocità dei dispositivi.



Quesito 18 : Contrariamente all'esempio (erroneo) nel testo, qui riprodotto, con l'estensione a tre bus di Mic-1 non si riduce il numero di cicli per l'esecuzione di ILOAD. Perché (max 6 righe)?
iload1  MAR = MBRU + LV; rd
iload2  MAR = SP = SP + 1
iload3  PC = PC + 1; fetch; wr
iload4  TOS = MDR
iload5  PC = PC + 1; fetch; goto (MBR)


Le prime righe di codice originale di iload sono

H = LV
MAR = MBRU + H; rd

L'errata corrige del testo però dice "Copia LV in H; alla fine del ciclo MBR contiene l'indice"

Ciò significa che MBR conterrà il valore corretto solo alla fine del primo ciclo. Chiaramente nella versione a tre bus si elimina il Main1 (che comunque viene eseguito nell'iload5), però non può essere eliminato iload1 perchè il valora di MBR non è ancora quello che ci si aspetta (bisognerebbe aggiungere un iload1 senza nessuno istruzione e un iload2 con MAR = MBRU + LV; rd)
« Last Edit: 19-05-2011, 16:18:49 by R3m » Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.519


« Reply #28 on: 20-05-2011, 20:06:25 »

La risposta va bene quindi?
No (quando va bene non reagisco): per essere corretta deve iniziare con "Spazi di indirizzi separati permettono..."
Quote
Andavano bene sia protetta che virtuale?
Sì, specificando in ciascun caso la differenza. In questo caso la risposta era corretta ma non del tutto completa.
Quote
Una maggiore dimensione rallenterebbe la fase di decodifica. Per fare un esempio, se abbiamo 32 istruzioni in totale nell'architettura, basterebbe utilizzare un registro a 32 bit settando a 1 il bit n-esimo per decodificare la n-esima istruzione. Per risparmiare memoria, invece, utilizzando un registro più piccolo (es. 16 bit o anche meno) bisogna avere delle particolari configurazioni, che comportano un maggiore dispendio di tempo in fase di decodifica.
Non mi è chiaro. Se ben capisco, lei prima considera l'uso di un decodificatore (con 5 bit in input, suppongo, codificanti il codice operativo) per attivare il circuito (o il microcodice) dei 32 corrispondenti alle 32 istruzioni (ovvero, codici operativi distinti). Il "risparmio di memoria" che considera nel secondo caso non riflette però una riduzione della dimensione dell'istruzione, perché lì il codice operativo sempre 5 bit richiede, no? Ora, una minore dimensione dell'istruzione certamente ne rende più veloce il prelievo, ma può invece rallentarne l'esecuzione. L'esempio argomentato nel testo riguarda l'uso di un decodificatore per l'abilitazione del registro da connettere al bus B. Poiché non più di un registro è da connettere al bus, tale uso è lecito, e si ottiene una dimensione minore dell'istruzione codificando la selezione del registro nel campo B dell'istruzione: questo richiede dunque ⌈log2n⌉ bit, dove n è il numero di registri collegabili al bus B. Tale risparmio di spazio nella dimensione dell'istruzione si paga con una esecuzione più lenta, per il ritardo introdotto dal decodificatore del campo B. Se invece si dedicano n bit al campo B, la selezione del registro da abilitare può effettuarsi per mappatura diretta, senza circuito decodificatore, dunque in un tempo minore, ma al prezzo di una maggiore dimensione dell'istruzione.
Logged
immatricola
Matricola
*
Offline Offline

Posts: 25


« Reply #29 on: 21-05-2011, 12:59:11 »

non riesco a rispondere a queste domande:
.il rapporto tra le prestazioni dell'ibm 360 model 30 era di 50 volte,mentre il ciclo di clock era 5 volte..perche?

il model 75 era piu grande è piu veloce,abbiamo piu memoria..........

-un calcolarore ha un bus a 220 mhz,32 bit per un ciclo e un disco ultra4-SCSI che lo usa a 160 mb/s.la cpu ha un ciclo esecutivo di 1 ns in che misura percentulae lo rallenta?
Logged
Pages: 1 [2] 3 4 ... 24   Go Up
Print
Jump to: