Domande Orale

YmirYmir Posts: 183
Raccolta domande

Baiardi (2015):
- Scrivimi il microprogramma di un arbitro a richieste indipendenti
- Metodo indirizzamento diretto della cache con confronti vari, modulo e tag
- Multithreading su superscalare, come funziona
- Differenza fra eccezioni e interruzioni e come vengono gestite dal processore
- Cosa sono i benchmark
- Arbitro decentralizzato (come funziona, è fair, ecc)
- Ciclo di clock del processore (quanto, perchè, ecc.)
- Metodo associativo su insiemi (come funziona, quanti bit, ecc)
- Implementazione send e receive (classe 26, unico meteodo?, ecc)
- Metodo diretto di indirizzamento della cache
- Microprogramma arbitro a richieste indipendenti
- Calcolo del ciclo di clock
- Metodi per ridurre il degrado dei salti condizionati
- Metodo completamente associativo di indirizzamento della cache
- Prestazioni del processore, benchmark
- Automa dell'arbitro a richieste indipendenti fair
- Cooperazione tra processi mediante send e receive (vecchio ordinamento)

Danelutto (2015):
- Cosa succede se elimino la pc da una rete sequenziale
- Spiegare il multithreading interleaving e blocked
- Spiegare le dipendenze iu-eu, eu-eu e qualche nozione generale sul processore superscalare
- Memoria

Comments

  • Esame orale sostenuto stamani, do il mio piccolo contributo.
    Voto dello scritto: ammesso con non sufficiente
    Domande:
    - Implementare un arbitro a richieste indipendenti senza l'utilizzo del registro turno
    - Vettore interruzioni, e visto che avevo fatto confusione tutta la gestione dell'interruzione
    - domanda per il vecchio ordinamento : implementare la receive ( praticamente scena muta)
  • DaniloDanilo Posts: 1
    Esame sostenuto stamani con Danelutto:
    -dipendenze EU-EU (come funzionano, cosa fare per ridurne il degrado)
    -multithreading blocked e interleaving
    -condizioni di Bernstein (quali sono con esempi di microcodice)
    -memoria: come funzionano le cache di primo e secondo livello (in generale e in caso di fault)
  • RPlantRPlant Posts: 1
    Ciao a tutti, orale fatto con Danelutto:
    - trattamento delle interruzioni in maniera molto dettagliata (perché il mprogramma è fatto da 3 istruzioni, se si poteva fare con meno, ecc)
    - processore superscalare in generale e come si modificano IM, IU, DM, EU rispetto al processore pipeline
    - spiegare il multithreading blocked e interleaving
    - controllo residuo con esempio, condizioni di bernstein con piccolo codice esempio
    - realizzazione tramite componenti logici delle interfacce a transizione di livello per la sincronizzazione (RDY e ACK)
    - varie domande sulle gerarchie di memoria (come funzionano le cache, come si possono realizzare ecc)
    - cooperazione tra processi ed implementazione di send e receive (sono classe 26 altrimenti il capitolo sui processi non farebbe parte del programma).

    All'orale preferisce che abbiate capito i concetti e che sappiate ragionare rispetto a quello che vi chiede piuttosto che definizioni imparate a memoria.
    In bocca al lupo!

  • MpacMpac Posts: 10
    Domande orale con Baiardi sostenuto l'ultimo appello di luglio:

    - Arbitro a richieste indipendenti
    - Indirizzamento associativo su insiemi (gli interessa particolarmente il numero di bit di TAG, offset, modulo)
    - Gestione del rimpiazzo di una pagina in cache e le politiche write-back e write-through
    - Tecniche per eliminare le bolle dipese dai salti
    - Mix e benchmark
  • Domande orale Danelutto appello straordinerio:
    - Multithread e supporto firmware per attuarlo
    - Superscalare e supporto firmware per attuarlo
    - Differenze fra le due architetture, con alcuni esempi di possibile funzionamento
    - Casi di Riuso e Località istruzioni assembly
    Durata 1 ora e 10 minuti, molto tranquillo e disposto a farti ragionare
  • Domande di Baiardi di questa sessione:
    (vedendo uno studente che parlava con un collega appena uscito dall'orale gli ha detto: "è inutile che ti fai dire le domande, tanto le cambio")

    - Differenza fra simultaneus, interliving e blocked multithreading
    - Metodo del benchmark
    - Quali vincoli devono avere le unità per poter funzionare in pipeline?
    - Come funziona il caching con il metodo diretto
    - Trattamento interruzioni
    - Come si calcola il ciclo di clock di un'unità
    - Come si elimina il degrado dovuto alle dipendenze logiche. Se hai due compilatori diversi e devi vedere chi dei due elimina di più il degrado quale scegli?
    - Metodo del mix. Se hai una classe di applicazione rappresentata da N programmi ad alto livello, le probabilità per ogni classe di microistruzioni sono fissate? [1]
    - Cache completamente associativa. Cosa si fa se la memoria associativa costa troppo (la risposta non l'ho capita)
    - Come funziona il processore superscalare.
    - Cache associativa su insiemi.
    - Ciclo di clock del processore pipeline.
    - Ottimizzazioni sul processore pipeline. Ha senso introdurre una IU out-of-order per ridurre il degrado dovuto alle dipendenza logiche EU-EU introdotte da load? [2]

    RISPOSTE AD ALCUNE DOMANDE INTERESSANTI (attenzione, contiene spolier).
    [1] no, non sono fissate. Infatti, è vero che ogni classe di applicazioni è caratterizzata da certe operazioni (per esempio nelle applicazioni di intelligenza artificiali ci saranno molte visite di grafi e quindi molte istruzioni di salto), però i codici sono ad alto livello e il metodo del mix opera su classi di istruzioni assembler. Quindi le probabilità dipendono anche da come il compilatore traduce le istruzioni ad alto livello.

    [2] no, non ha senso. Infatti, la IU manda avanti le istruzioni che seguono la load anche se sono in dipendenza logica. ad esempio:
    LOAD r1 r2 r3
    { IU non ha una copia aggiornata di r3 }
    ADD r3 r4 r5

    La IU manda avanti la ADD pur non avendo il valore aggiornato di r3, perché la dipendenza logica verrà risolta in EU. Visto che non serve ritardare le istruzioni in situazioni di questo tipo, non ha senso introdurre una IU out-of-order solo per questo motivo.
  • 3490834908 Posts: 15
    Qualcuno ha da dare un ulteriore contributo sulle domande fatte dal Danelutto?
    Arrivo all'orale con QUASI SUFFICIENTE quindi sono abbastanza preoccupato :)
  • - Ciclo di clock del processore pipeline.

    Come dobbiamo rispondere?
  • Devo sostenere l'orale col Baiardi, e avevo un paio di domande:
    1) Chiede chiarimenti su quello che abbiamo sbagliato e non fatto sul compito, oppure fa domande random?
    2) Ho notato che spesso chiede MIX e Benchmark, spiegarli entrambi e dire la differenza, ma sul libro ci sono giusto due righe...
  • Orale fatto recentemente, appello di Luglio (scritto difficile, il prof ha ammesso che non e' andato benissimo a nessuno, e i pochi di noi che sono passati ha detto che eravamo 'i meno peggio'). Premesso questo, domande dell'orale sono partite da cio' che allo scritto avevo fatto bene, con domande sul multithreading (tutti i tipi), in particolare chiedeva come vengono formate le istruzioni lunghe nell'architettura superscalare.
    Poi siamo passati a microprogramma dell'arbitro a richieste indipendenti, e da li domande tipo:
    - mostrami la PC di questo arbitro, cosa e' una PC ecc
    - tipi di arbitri, e in particolare microprogramma dell'arbitro a token ciclante (non credo l'abbia fatto a lezione avendo seguito, ma lo voleva sapere)
    - indirizzamento della cache associativo su insiemi, con tutti i dettagli del tag, quanti bit per ogni parte, e quanti elementi per ogni insieme in cui e' divisa la cache
    - vettore delle interruzioni e anche tutta la gestione delle interruzioni.

    Ragazzi spero di aver portato info utili come le informazioni gia' presenti sono state utili a me!! Grazie a tutti quelli che hanno condiviso la loro esperienza.
  • Orale svolto neanche un'ora fa con Danelutto, aggiungo le domande che mi sono state fatte (partivo da Buono):

    - Schedulazione e commutazione di contesto di processi (in particolare nel caso del quanto di tempo e dei processi con priorità)
    - Condizioni di Bernstein: spiegazioni in termini del ciclo di clock (con esempio di codice)
    - Eu parallela: in che modo si sfrutta il modello pipeline e il modello a replicazione
    funzionale, dipendenze EU-EU
    - Cosa comporta in termini di unità di tempo l'utilizzo della EU slave e che cosa si deve considerare nel rapporto con la IU e nella gestione dei registri interni. (domanda per lode)


    Mi sembra che non mi abbia chiesto nient'altro. Il mio orale è durato circa 20-30 minuti perchè non ho esitato nel rispondere. Tiene di più e fa più domande a chi è incerto.

    Grazie a tutti coloro che hanno scritto le proprie domande!
  • NymeriaNymeria Posts: 14
    Danelutto:
    - PC con componenti standard
    - Cache: Write Back e Write Through
    - Tempo di completamento effettivo e ideale su processore monolitico e pipeline (con esempio)

  • NokiNoki Posts: 6
    Danelutto esame svolto oggi (ero l'ultimo dei preappelli, mi son seduto con "discreto")

    - Tempo necessario all'esecuzioni di due istruzioni LOAD consecutive su processore monolitico
    - Numero di stati in un atoma di Mealy/Moore necessari a rappresentare un dato numero di stati
    - Automa di Mealy e di Moore per contare la parità di una stringa binaria (e realizzazione di quello di Moore)
    - Come realizzare un processore superscalare a 4 vie (gestione dei registri nella IU)
    - Calcolo del numero di stati / tempi di una rete sequenziale che ha scritto lui sul momento

    In generale cerca di farvi ragionare, e a quanto ho visto il voto dell'orale puo impattare molto (son passato da discreto a 30)
  • Baiardi(orali del 9 gennaio 2017)
    - microprogramma di un arbitro a richieste indipendenti(fair e unfair, parte operativa e parte controllo)
    - metodi per controllare se c'è una pagina in una cache e spiegazione dell'indirizzamento diretto(è molto attento alla spiegazione del significato del numero di bit)
    - metodo del mix e del benchmark(domanda che sembra banale ma mi ci ha tenuto sopra un bel po')

    - gestione delle interruzioni(i due modi)
    - metodo associativo su insiemi
    - come si diminuisce il degrado dovuto ai salti

    - perché si usano le pagine e in che modo il numero di fpult dipende dalla grandezza della pagina
    - tipi di ottimizzazioni delle dipendenze statiche
    - cosa è il vettore delle interruzioni
  • CapsCaps Posts: 1
    Devo sostenere l'orale con Baiardi e ho una domanda: piú o meno quanto dura il suo orale?
  • Caps wrote: »
    Devo sostenere l'orale con Baiardi e ho una domanda: piú o meno quanto dura il suo orale?

    Se rispondi bene te la cavi in 15/20 minuti.
  • Orale dato con Danelutto (partivo da un Quasi Sufficiente + Sufficiente, dei compitini).

    -Processo di sintesi formale, con disegno e tutto. Per capirci, alla compito.
    - Perche', nel calcolo del tempo di ciclo di clock, insieme a omegaPC+sigmaPO, confrontiamo anche sigmaPC, nel massimo ? Tradotto, puo' essere sigmaPC > omegaPC+sigmaPO ?
    - Differenza tra rete Mealy e rete Moore.
    - Parallelismo Farm
    - Aggiungere nell'interprete fw una istruzione di MOVI che copia 32bit in un registro dalla memoria. Dopo averla scritta, aumenta il ciclo di clock?

    Danelutto tranquillissimo, ti fa ragionare. Se avete studiato non avrete problemi.


  • Orale sostenuto stamani con Baiardi (partivo da Sufficiente (almeno credo, non ha pubblicato i voti) e sono uscito con 27):

    - Gerarchie di Memoria, discorsetto generale ed entrando nello specifico: tipi di indirizzamento, cache ad indirizzamento diretto (tutti i particolari, ha molto a cuore la suddivisione dell'indirizzo proveniente da MMU nei vari campi TAG, BC e OFFSET) cosa succede in caso di fault di cache (nello specifico quale pagina di cache si va a sostituire nei vari casi)
    - Arbitro a richieste indipendenti fair : microprogramma, sintesi PC e PO e calcolo del ciclo di clock.
    - Quali sono i metodi per ridurre le dipendenze logiche?
    - Multithreading: Blocked, Interleaved ed Hyperthreading. Tutti e tre nello specifico: replicazione, quali strutture si condividono e perchè, in quali casi etc. etc.
    - Località e Riuso nei programmi, spiegare ed illustrare con esempi.

    Baiardi mi è sembrato davvero tranquillo, lascia il tempo di ragionare sulle domande che pone (in genere precise e mirate).

    Grazie a tutti per le esperienze condivise, sono state utili!
  • Alberto AlberigiAlberto Alberigi Posts: 6
    edited June 2017
    Orale sostenuto stamattina, scritto sufficiente (anche se mi è parso che abbia dato solo un occhiata sommaria per capire chi era sufficiente e chi no, e poi in sede di orale lo ha ricontrollato nuovamente con più cura), voto finale 24.
    -Come si risolvono le dipendenze logiche? risp, allontanandole tra di loro e inserendo nel mezzo istruzioni non in dipendenza.
    -Come fa il compilatore a capire quali istruzioni inserire? non sapevo cosa rispondere, ho provato spiegando i semafori dei registri, ma ha detto che il compilatore non li vede, rimane tutt'ora una domanda senza risposta per me.
    -Come ridurre le probabilità di salto? Loop unfolding e espansione di macro e di funzioni e poi ho spiegato anche il delayed branch.
    -Fai il microcodice di un arbitro, poi fallo fair e poi fai la pc dell'arbitro.
    -Metodo set associative, divisione dei bit dell'indirizzo (offset, set, tag), poi mi ha chiesto come si fa a vedere se è nell'insieme o meno (ho spiegato che si confrontano i tag, voleva sapere nello specifico come, ma non mi ricordavo bene).

    Le domande sono dirette e vuole la risposta senza troppi giri di parole, vi lascia il tempo di ragionare (se di buon umore, se lo trovate nervoso è più cattivo), cercate di studiare affondo anche i principi di funzionamento dei vari meccanismi che spiegato perché ogni tanto è puntiglioso.
    Ma comunque se siete arrivati con voto >= sufficiente, a meno che non fate un pessimo orale, difficilmente vi boccerà.
  • Ff300Ff300 Posts: 1
    Orale con Danelutto. In generale mi è sembrato tranquillo, quando fa le domande lascia il tempo di pensare alle risposte con calma. Bisogna sapere le cose dette a lezione ma può chiedere anche di ragionare su cose nuove.
    - Come funziona la MMU e la traduzione di indirizzi (nel dettaglio, con IPL-IPF e offset, tab.ril, schema dell'MMU)
    - Superscalare a 2 vie: condizioni per mettere due istruzioni in contemporanea, problemi con LOAD/LOAD (soluzione standard, poi mi ha chiesto se si riesce a potenziare l'accesso alla cache per leggere due indirizzi diversi insieme)
    - Rete di Mealy, ha scritto un automa sul momento e mi ha chiesto di fare le tabelle di verità di ω e σ)
    - (domanda difficile) cambiare la gestione delle interruzzioni nel processore sequenziale: cambio l'interfaccia con UINT (l'arbitro che sceglie di quale periferica prendere l'interruzione) per ricevere oltre al segnale anche i due valori (quelli che di solito arrivano tramite la MMU) in registri. Vantaggi, svantaggi e modifiche da fare al processore e alle unità FW esterne che mandano le interruzioni.
  • Orale con Danelutto di oggi 31/01/18, partivo con due Sufficiente dai compitini e sono arrivato a 27.
    Molto tranquillo, io sono arrivato molto agitato, lui lo ha notato e ha cercato di rassicurarmi e mi ha sempre lasciato tempo per riflettere. Le domande sono state:
    - Definizione di dipendenze logiche, dove si trovano nel processore sequenziale e dove in quello pipeline (spoiler: nel sequenziale non ci sono)
    - Condizioni di Bernstein, quali sono e quali si considerano nel microcodice
    - Vantaggi e svantaggi di costruire un commutatore a 4 ingressi a partire da una rete di commutatori da 2 vs implementazione ad hoc con tabella di verità. E se avessi voluto un commutatore a 2 ingressi da 32 bit a partire da una rete di commutatori a 2 ingressi da 32 bit? E se lo avessi fatto con una tabella di verità?
    - Cosa succede ad un indirizzo da quando esce dal processore a quando arriva alla cache set-associativa, in cui è presente? (Quindi paginazione, funzionamento della MMU, funzionamento della cache set-associativa)
    - Implementa un'istruzione ADDM Ra Rb Rc che prende due parole alle locazioni Ra ed Rb dalla memoria, le somma e mette il risultato in Rc. Descrivi i pro e i contro dell'implementazione a livello firmware rispetto all'implementazione come istruzione derivata.
    (spoiler: se la implemento a livello fw passo solo una volta dalla ch0 e quindi ho solo un accesso in memoria per prendere l'istruzione)
  • michelezoncheddumichelezoncheddu Posts: 2
    edited January 31
    Orale con Danelutto:
    - In quali casi conviene cambiare o tau o k nel tempo di completamento di un programma T = tau * k (ricordo che k è la somma del numero di istruzioni per ogni operazione, ognuna moltiplicata per la probabilità che venga richiesta), cosa succede a tau se cambio k e viceversa, in pratica cosa succede al microcodice e cosa succede alla parte operativa; controllo residuo.
    - Politica write through e write back, quando conviene usare una o l'altra, e di cosa mi devo assicurare in un programma prima di usare la w. through.
    - Processore pipeline superscalare con multithread simmetrico, caratteristiche implementative (soprattutto IM e DM), vantaggi e svantaggi.

    È molto tranquillo, cerca di mettervi a vostro agio; se magari non rispondete subito o dalla risposta capisce che state pensando a cose troppo complesse (nella domanda sulle politiche w. back e w. through ho iniziato a parlare di cache coherence e ritardi nell'accesso a dati condivisi tra diversi core), cerca di cambiare punto di vista per farvi ragionare.
  • Andrea TostiAndrea Tosti Posts: 6
    edited February 17
    Orale con Danelutto
    - Alcune domande per verificare che fossi l'autore del progetto Verilog
    - In Verilog come scriveresti il commutatore a 8 vie a N bit usando piu' commutatori a 8 vie 1 bit? Altre domande sui ritardi, sulle tabelle di verita' in Verilog
    - Date le unita' A, B e una unita' intermedia tra A e B, scrivere un micro-programma tale per cui l'unita' intermedia mandi un dato da A a B
    - Come funziona la commutazione di contesto, in particolare chi se ne occupa, come funziona la start_process, come deve essere realizzata la MMU per riconoscere una commutazione di contesto, come deve essere memorizzata le Tabril dei processi in memoria principale
    - Mi viene proposto un codice DRISC con un po' di istruzioni, dire il Tempo di Completamento ideale (#istruzioni * t), il Tempo di completamento non ideale (con le bolle sulla IU), Tempo di Completamento effettivo (con la presenza di una memoria cache), quindi per quest'ultimo bisognava anche calcolare il #Fault, dire poi in quale caso avrei avuto 2 fault invece che 1 (elementi B e B[i+1] su linee diverse della cache).

    Durato 50 minuti come piu' o meno tutti gli altri orali del 16 febbraio 2018.
  • Orale con Baiardi, 16/02/2018
    Ammesso con insufficiente, voto finale: 23.
    - Arbitro a richieste indipendenti fair, micro-codice, pc.
    - Set Associative Cache
    - Metodo del Benchmark
    Sono arrivato visibilmente teso e ho fatto qualche errore banale ma si è mostrato paziente.
    Consigli:
    1) Per quanto banale, fate un esercizio sull'arbitro prima di andare, l'ansia può giocare un brutti scherzi.
    2) Come a tutti, anche a me ha chiesto di essere specifico sulla questione dei bit di insieme, e di pagina per la Cache.
    3) Sul Benchmark mi ha chiesto quale fosse il vincolo che deve valere per ogni programma di test. Poichè deve essere testabile su più interpreti deve essere scritto in linguaggio di alto livello (se fosse scritto in assembler funzionerebbe solo per l'interprete di quello specifico linguaggio)
  • edited February 20
    Orale con Baiardi fatto stamattina (20/2/2018). Ammesso con "buono", voto finale 28.

    - formula del tempo per il trattamento di un fault
    - fattore di caricamento di un sistema a coda: definizione e cosa misura [*]
    - se il fattore di caricamento del buffer presente tra la IU e la EU è > 1, il degrado derivante da una dipendenza IU-EU migliora o peggiora? [**]
    - trattamento delle interruzioni, in quale parte del microprogramma del processore sequenziale testo INT, composizione della microistruzione tratt_int

    [*] se > 1 il sistema è collo di bottiglia e rallenta le unità precedenti del pipeline
    [**] risposta: peggiora, perché significa che il buffer è pieno, per cui l'istruzione che induce la dipendenza ci metterà di più per fare la coda, arrivare alla EU, essere eseguita, e mandare l'aggiornamento del registro alla IU (evento con il quale la bolla termina)

    Ci sono stati altri orali prima del mio, non ho sentito tutte le domande ma ricordo che i leitmotiv sono stati l'arbitro a daisy chaining (PO e microcodice) e i tre metodi di indirizzamento della cache - argomenti che agli altri ha chiesto in quasi tutti i casi!

    Il Baiardi parte relativamente tranquillo ma si incazza se dite castronerie o se dimostrate di non sapere cose che lui ritiene fondamentali. Comunque non fatevi scoraggiare perché in generale mi è sembrato difficile che bocci. Vuole risposte dirette e mai discorsi generali: se chiede una formula vuole la formula, non iniziate a parlare di cosa serve, o paragrafo in cui si trova, altrimenti vi blocca e vi chiede di arrivare al punto. Se dovete prendere tempo, meglio rimanere a riflettere in silenzio piuttosto che parlare girandoci attorno (se ne accorge :lol: ); inoltre ascoltate bene la domanda (non vuole che gli si parli sopra quando ancora non ha finito di dirla). Se non sapete una cosa non dite "non c'era sul libro" o "non è stato detto a lezione": un ragazzo oggi lo ha fatto e il Baiardi se l'è presa molto prendendola per maleducazione. :sweat_smile:
Sign In or Register to comment.