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

Guida di base alla programmazione e al linguaggio Pascal


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

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

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

La guida seguente è una introduzione alla teoria della programmazione imperativa e alle strutture con essa correlate.  La  guida si propone con un taglio molto pratico e orientato alla sperimentazione “sul campo” delle tecniche presentate: per questo motivo è stato scelto un linguaggio ormai obsoleto, ma molto adatto per la presentazione dei costrutti tipici di tutti i linguaggi moderni, il Pascal.

01. La programmazione

In questa prima lezione si analizza il termine programmazione e si spiega cosa sia la progettazione algoritmica, fino ad arrivare a parlare del linguaggio Pascal, della sua utilità e delle sue applicazioni. Viene introdotto il compilatore.

02. Basi sintattiche
In questo primo progetto vengono analizzate le basi del linguaggio Pascal, attraverso un progetto semplice ma efficace. Vengono mostrate la sintassi e la semantica del Pascal, oltre alle regole fondamentali per la scrittura di programmi.

03. L’assegnamento
Questo progetto introduce una struttura fondamentale della programmazione, ossia l’assegnazione di valori alle variabili.

04. Interi
In questo progetto, attraverso il lavoro di calcolo di quoziente e resto di una divisione, si parla diffusamente di variabili di tipo intero, operatori matematici e funzioni legate agli interi.

  • Documento: 04 Interi - 72.2 kB (Scaricato 968 volte)

05. Selezione
Si parla della struttura fondamentale della programmazione, ossia la selezione. Vengono quindi introdotti anche gli operatori relazionali.

06. Iterazione – parte 1
L’iterazione viene introdotta in questo progetto nelle sue due prime forme, ossia quella con condizione a priori e quella con condizioni a posteriori. Si tratta quindi della struttura repeat…until e quella while…do.

07. Scelta multipla
La scelta multipla non è una vera e propria struttura in Pascal, ma è comunque importante per eseguire determinati compiti utilizzando meno spazio. In questo progetto si vedrà come utilizzarla attraverso un problema pratico, ossia scrivere in lettere un numero.

08. Iterazione – parte 2
In questo progetto si torna a parlare di iterazione, intrucendo quella enumerativa, ossia la struttura for…to…do e for…downto…do. Viene fatto un piccolo appunto anche sull’importanza di questa struttura nella programmazione moderna.

09. Operatori logici – parte 1
In questa prima parte vengono introdotti gli operatori logici e la loro utilità. In particolare si analizza l’operatore NOT. Si parla di matematica parlando di logica bivalente e si analizza la tabella delle precedenze in Pascal.

10. Operatori logici – parte 2
Questo secondo progetto sugli operatori logici ha come tema centrale lo studio dell’operatore AND.

11. Operatori logici – parte 3
In questa ultima lezione sugli operatori logici si analizzano gli operatori XOR e OR, per concludere analizzando tautologie, contraddizioni ed origine della selezione.

12. Booleani
In questa lezione si analizzano le variabili di tipo booleano e le funzioni ad esse collegate.

  • Documento: 12 Booleani - 46.54 kB (Scaricato 910 volte)