Architettura degli elaboratori Turno 3/2003-2004

Da WikiDsy.

Materiale didattico

Appunti

Altro

Diario del Corso

Lezione del 02/03/04

  • Introduzione
  • Funzioni booleane

Lezione del 04/03/04

  • Funzioni booleane
  • Similarità con insiemi e logica
  • Proprietà di assorbimento
  • Leggi di De Morgan
  • Tesi di Shannon
  • Primi cenni ai circuiti logici
  • Multiplexer
  • "2 è meglio di 3", utilizzo di due operatori logici
  • Operatore NAND, NOR

Esercizi

  • Disegnare lo schema di un circuito Multiplex con 4 segnali in ingresso
  • Dimostrare che NAND è un insieme di connettivi funzionalmente completo
  • AND e OR: dato per scontato che non si riescono ad utilizzare per tutte le f. booleane, quali sono quelle realizzabili?
  • Come si trasforma un c. Multiplex in un invertitore?

Lezione del 09/03/04

  • Crescita del tempo in funzione della profondità del circuito
  • Decoder
  • Decoder come Multiplexer
  • Demultiplexer
  • Condivisione del segnale
  • Teorema SPC
  • Mintermini

Lezione del 11/03/04

  • Mintermini - Maxtermini
  • Circuito "somma" (full adder)
  • Progettazione orologio digitale
  • Coefficienti binomiali (come ripasso)
  • NAND usato come OR
  • Funzioni Monotòne
  • Circuiti Sequenziali
  • Retroazione (feedback)

Esercizi

  • Sintetizzare la funzione di 4 variabili che vale 1 se e solo se tre ingressi valgono 1.
     f(x1, x2, x3, x4) = x1 x2 x3 + x1 x2 x4 + x1 x3 x4 + x2 x3 x4
  • Lo stesso ma con solo 2 ingressi uguali a 1.
     f(x1, x2, x3, x4) = x1 x2 + x1 x3 + x1 x4 + x2 x3 + x2 x4 + x3 x4

Lezione del 16/03/04

  • Circuiti Sequenziali
  • Circuito "latch D", o BAT
  • Circuito "flip flop"
  • CPU, Memoria e Bus
  • Circuiti di scrittura sul Bus (MAR, MDR, MBR)
  • Registri CPU
  • Circuiti di Lettura
  • Circuiti di scrittura

Lezione del 18/03/04

  • Automi
  • Progettazione Sistemi di Controllo
  • Automi a stati finiti
  • Esempi

Lezione del 23/03/04 - Assembly #1

  • Introduzione generale
  • Differenza tra Assembly e Linguaggio Macchina
  • Classificazione dei linguaggi
  • Perchè scrivere in Assembly?

Lezione del 25/03/04 - Assembly #2

  • Sistemi di numerazione
  • Struttura del Calcolatore (cenno)
  • Differenza Pentium (CISC) e PowerPc (RISC)
  • Modalità di Indirizzamento (cenno)
  • Linguaggio MIPS (cenno iniziale)

Lezione del 30/03/04

  • Classificazione architettura e linguaggi
  • "all'ACC"
  • "alla Memoria"
  • "allo Stack"
  • "ai Registri
  • Cammino storico
  • Micro-programmazione
  • Vantaggi del RISC
  • Concetto di Pipeline
  • Istruzioni RISC
  • Tipi di Istruzione: "R"

Lezione del 01/04/04

  • Aritmetica Modulo 2
  • Numerazione Binaria Naturale
  • Complemento a 2
  • Proprietà di Estensione del Segno
  • Register File (ripasso e chiarimento)
  • Tipi di Dato (e loro significato)

Dindondan!

Lezione del 06/04/04

  • Data Path e Control Path per Istruzioni R
  • La ALU

Lezione del 15/04/04

  • Un po' di storia (PDP-8, PDP-10, PDP-11)
  • Indirizzamento nel MIPS
  • Istruzione "beq"
  • ALU, "set on less than"

Lezione del 20/04/04 - Assembly #3

  • Istruzioni e pseudo-istruzioni aritmentiche: add, sub, mul, div
  • Istruzioni di l/s: li, lw, sw
  • Istruzioni e pseudo-istruzioni di salto: j, beq, bne, blt, slt

Esercizio

  • Codificare in assembly il seguente codice java che calcoli la somma dei primi 10 numeri:
 code:int tot=0;
   for (int i=0; i<=10; i++)
     tot = tot + i;

Lezione del 22/04/04 - Assembly #4

  • Concetto di Stack
  • Record di Attivazione
  • Istruzioni JAL e JR
  • Registri $sp e $ra
  • Push e Pop, codifica Assembly
code:int tot=0;
  for (int i=0; i<=10; i++)
    tot = tot + i;// tot+=i;

Lezione del 22/04/04 - Assembly #5

  • Chiamata di procedure (continuazione)
  • Chiamate di sistema
  • Utilizzo della memoria
  • Un primo esempio di programma

Esercizi

  • scrivere un programma Assembly che stampi "SI" se e solo se read_str termina le stringhe in ingresso con NULL, altrimenti stampi "NO"
  • scrivere un programma Assembly che legga una stringa e stampi la sua immagine speculare (consiglio del prof: usare una sottoprocedura che inverta la stringa la cui posizione di memoria è nota)
         .data
         
 msg:    .asciiz "Ho letto "
 
         .text
         .globl main
         
 main:   li $v0, 5
         syscall
         move $t0, $v0
         li $v0, 4
         la $a0, msg
         syscall
         li $v0, 1
         move $a0, $t0
         syscall
         li $v0, 10
         syscall

Lezione del 29/04/04

  • beq :micro-operazioni
  • lw: micro-operazioni
  • Istruzioni e valori di controllo

Lezione del 04/05/04

  • Moltiplicazione - circuito
  • Algoritmo di Booth (non è stato fatto a lezione, il prof ha specificato che potrà essere portato all'orale per un voto "in più")
  • Pipeline

Lezione del 07/05/04

  • Pipeline - continuazione
  • Dipendenza dei Dati

Lezione del 11/05/04

  • Branch Prediction
  • Pipeline nel 486

Lezione del 13/05/04

  • Istruzioni di Salto in Pipeline
  • Accessi al disco, strategie
  • Memorie Cache, introduzione

Lezione del 20/05/04

  • Memorie Cache, continuazione

Lezione del 25/05/04

  • Algoritmo di Booth (è stata data una fotocopia, la trovate tra gli appunti)
  • Gestione della Memoria
  • Memoria Virtuale
  • Paginazione

Lezione del 27/05/04

  • Paginazione - seconda parte
  • Segmentazione
  • Chiamate di procedura nello Spark

Lezione del 01/06/04

  • Reti
  • Reti locali - topologie
  • Rete Ethernet
  • Struttura frame
  • Transceiver

Lezione del 03/06/04

  • Tecniche di produzione dei cd/dvd

Per scaricare le slides potete andare qui: http://www.aei.it/aeimilano/doc/ppt150404.pdf

Lezione del 08/06/04

  • Struttura degli Indirizzi Internet
  • IPv4

FINE