Appunti Calcolatori Elettronici


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

Nel documento allegato una serie di appunti tratti dai corsi di Calcolatori Elettronici L-A e Calcolatori Elettronici L-M dell’Università di Bologna, corso di studi in Ingegneria Informatica.

Argomenti trattati

Memorie:

  • Caratteristiche e accesso di una memoria EPROM
  • Caratteristiche e accesso di una memoria RAM
  • Realizzazione della memoria centrale
  • Memorie DRAM e SRAM
  • Tecnologia delle memorie DRAM, accesso, refresh, modo pagina
  • Memorie SDRAM, DDR, DDR2, DDR3
  • Organizzazione in interleaving
Instruction Set:
  • ISA RISC, in particolare DLX
  • ISA CISC, in particolare Intel 8088
Processore DLX:
  • Realizzazione sequenziale e formato delle istruzioni
  • Principi di pipelining e parametri caratteristici
  • Datapath pipelined del DLX
  • Architettura Harvard
  • Alee strutturali
  • Alee di dato e soluzione con Delayed Load, Forwarding Unit e Split Cycle
  • Alee di controllo e riduzione del numero di stalli con retroazioni, delayed branch, previsioni statiche, Branch Target Buffer
Processori 8086/8088:
  • Caratteristiche del bus
  • Indirizzamento completo: segmentazione e calcolo dell’offset
  • Unità di lavoro
  • Cicli di bus di lettura e scrittura
  • Bus multiplexato
  • Segnale di Ready e calcolo degli stati di wait
  • Circuito di clock
  • Circuito di reset
  • IC 8284
  • Gestione I/O: registri di stato, registri di controllo, registri di dato, gestione a polling e a interrupt
Interruzioni:
  • Definizione di interruzione e tipologie: hardware mascherabili e non mascherabili (INT e NMI), eccezioni, interruzioni software (istruzione INT)
  • Trasferimento del controllo vettorizzato e Interrupt Vector Table (IVT)
  • Riconoscimento del tipo di interruzione (ciclo INTA*)
  • Passaggio alla routine di gestione dell’interruzione
  • Istruzione HALT
  • Generazione di un interrupt type
PIC 8259:
  • Caratteristiche generali
  • Registri ISR, IMR, RR, rete di risoluzione priorità
  • Programmazione e configurazione
  • Rete di conversione fronte-livello
  • Configurazione in cascata e utilizzo dei segnali CAS
8255:
  • Generalità e programmazione delle porte
  • Funzionamento in modo 0
  • Funzionamento in modo 1
Hard disk:
  • Generalità di utilizzo e tecnologiche
  • RAID
DMA:
  • Motivazioni e utilità
  • Ciclo speciale HOLD/HOLDA

IC 8237:

  • Modalità di utilizzo e cicli di bus
  • Funzionamento fly by
  • Funzionamento flow through
  • Modi di funzionamento: single transfer mode, demand mode, block mode, cascade mode
  • Programmazione
  • Registri di canale visibili e nascosti
  • Auto Init
  • Bit CBFF (Clear Byte Flip Flop)
  • EOP* open drain
  • Estensione dell’indirizzo
  • Interfacciamento con processori a 8 e 16 bit
Gerarchia delle memorie e paging:
  • Nastri, dischi, memoria centrale, cache, registri
  • Principio di località spaziale e temporale
  • Paginazione ad un livello
  • Paginazione a 2 livelli
  • Dimensione delle pagine
  • Page Fault
  • TLB (Translation Lookhaside Buffer)
  • Tabella delle pagine invertita, con e senza link, eventualmente più vie
Cache:
  • Memoria associativa
  • Terminologia: linea, tag, index, offset, replace, miss, hit
  • Tipologie: full associative, direclty mapped, set-associative a più vie
  • Rimpiazzamento: random, LRU a stack o contatori, Pseudo LRU, FIFO
  • Politiche di Write Miss e Write Hit
  • Cache indirizzate virtualmente, fisicamente o in accesso sovrapposto
  • DLX reale: MIPS, R2000, R3000
  • Parametri dinamici delle cache
  • Accellerazione delle cache e speculazione
  • Tipi di miss: compulsory, capacity, conflict
  • Protocollo MESI con 1 processore e DMA
  • Protocollo MESI con 2 o più processori
  • Protocolli di coerenza Directory Based
Branch Target Buffer:
  • Predizione con 1 o 2 bit
  • Predizione statica
  • Predittore adattativo a 2 livelli
Architetture parallele:
  • Scoreboarding
  • Algoritmo di Tomasulo
  • Algoritmo di Tomasulo con ROB
Pentium I:
  • Generalità e bus
  • Cicli di lettura e snoop cache
  • Segnali di controllo della cache
  • Cicli burst
Evoluzione dei bus:
  • Bus del Pentium II
  • Bus FSB
  • Bus DIB
  • Bus DHSI
Quick Path:
  • Requisiti, terminologia e livelli
  • Performance
  • Tolleranza agli errori
  • Protocollo MESIF
  • Source snooping e home snooping
Evoluzione x86:
  • Registri a 32 bit
  • Descrittore di segmento e tabelle dei segmenti (GDT, LDT)
  • Selettori di segmento e caching dei descrittori
  • Indirizzamento completo
  • Tabelle delle pagine e descrittori di pagina: cacheabilità delle pagine, cronologia di un page fault
  • Registri di sistema: CR0, CR1, CR2, CR3, CR4, IDTR, GDTR, TR, LDTR
  • Sistemi segmentati e impaginati, solo impaginati, solo segmentati
  • Meccanismi e attivazione della protezione: modo reale, livelli di protezione
  • Caricamento dei registri di segmento e accesso ai dati
  • Meccanismi di chiamata a procedura: call, call gate, segmenti di codice conformante, problematiche dei cavalli di Troia, istruzione ARPL
  • Interruzioni x86: cicli di bus, interrupt gate, tabella IDT
  • Task: descrittore di task, descrittore del segmento descrittore del task, task gate, permessi I/0, attivazione di un task, task innestati, cambi di contesto
  • Flags
Architettura P6:
  • Novità strutturali
  • Stadi IF1, IF2, IF3, DEC1, DEC2, RAT, ROB, DIS, EX, RET1, RET2
  • Return Stack Buffer, BTB, MIS (Micro Instruction Sequences)
Pentium IV, Xeon, Centrino:
  • Generalità Pentium IV
  • Trace Cache
  • Hyper Threading
  • XEON
  • Pentium M – Centrino
  • Riduzione dei consumi
  • Loop Detector
  • Indirect Branch Predictor
  • Micro – fusione
Strutture Dual Core:
  • Generalità
  • Estensione a 64 bit
  • Tecnologie di supporto alla virtualizzazione
  • Core Duo
  • Prefetcher intelligente
  • Macro – fusione
  • MOB (Memory Order Buffer)
  • Memory Disambiguation
Nehalem:
  • Processo Tick-Tock
  • Caratteristiche
  • TLB e BTB a due livelli e copertura con la cache L3
  • Cache inclusive ed esclusive e metodologie di snoop
  • TLB taggato
  • Unaligned Check Address
  • Unità di controllo dei consumi e stati C
  • Modalità Turbo

Download

Semplici esempi ASM x86


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

Questo articolo racchiude una serie di guide, programmazione ed esempi in Assembly x86 per semplici operazioni matematiche:

Progetto 1: Somma di due byte

Progetto per la realizzazione di un programma in grado di sommare due byte in memoria e depositare la somma come word in memoria.

Progetto 2: Somma di due word

Progetto per la realizzazione di un programma in grado di sommare due byte in memoria e depositare la somma come word in memoria.

Progetto 3: Riconoscere numeri pari

Dati due byte in memoria, determinare quanti di essi sono pari e scrivere il risultato in memoria.

  • Documento: Numeri pari - 151.64 kB (Scaricato 1206 volte)

Progetto 4: Confronto di byte

Dati due byte in memoria, confrontarli e scrivere il maggiore dei due in una terza locazione.

Progetto 5: Prodotto di due byt

Dati due byte residenti in memoria, calcorarne il prodotto sia come somma ripetuta, sia con metodi combinatori.