Appunti Calcolatori Elettronici

Posted in Elettronica digitale, Elettronica e Hardware, Hardware on gennaio 19th, 2012 by Andrea – 1 Comment

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

Analisi del circuito RC

Posted in Elettronica analogica, Elettronica e Hardware, Elettrotecnica on maggio 23rd, 2011 by Andrea – Be the first to comment

Analisi della transcaratteristica del circuito RC.

Documenti

Guida di base alla programmazione e al linguaggio Pascal

Posted in Pascal, Programmazione on maggio 17th, 2011 by Andrea – Be the first to comment

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 71 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 61 volte)

Amplificatori operazionali

Posted in Elettronica analogica, Elettronica digitale, Elettronica e Hardware, Elettrotecnica on maggio 16th, 2011 by Andrea – Be the first to comment

Verifica delle caratteristiche degli amplificatori operazionali. Analisi delle configurazioni di derivatore ed integratore.

Sommario

  1. Descrizione della prova
  2. Amplificatori operazionali
  3. Comparatore
  4. Configurazione ad anello chiuso
  5. Configurazione invertente
  6. Configurazione non invertente
  7. Inseguitore
  8. Trasformata di Laplace per l’analisi circuitale
  9. Derivatore ideale
  10. Derivatore reale
  11. Integratore ideale
  12. Integratore reale
  13. Circuiti integrati per AMPOP
  14. Analisi dei parametri di base
  15. Misura dello Slew Rate
  16. English Part

Appendici

  • Trasformata di Laplace
  • Segnali di prova
  • Applicazioni lineari degli amplificatori operazionali
  • Coppia resistiva per guadagni prefissati

Documenti

Progetto e realizzazione di un alimentatore stabilizzato di tensione

Posted in Elettronica analogica, Elettronica e Hardware, Elettrotecnica on maggio 16th, 2011 by Andrea – Be the first to comment

L’obiettivo è quello di costruire un generatore di tensione continua, ossia un dispositivo elettronico in grado di convertire la tensione di rete in un segnale continuo ad un valore prestabilito. La corrente fornita dipenderà dal carico applicato, ma non potrà comunque superare un valore massimo prestabilito, pena la caduta del valore di tensione.

Sommario

  1. Introduzione
  2. Progetto di alimentatori
  3. Caratteristiche della tensione di rete
  4. Tipi di alimentatore
  5. Schema a blocchi di un alimentatore
  6. Il trasformatore
  7. Il raddrizzatore
  8. Filtro
  9. Stabilizzatori
  10. Stabilizzatori integrati
  11. Stabilizzatori ad uscita variabile
  12. Dissipazione
  13. Dissipatori
  14. Alimentatori positivi e negativi
  15. Progettazione
  16. Simulazione
  17. Test
  18. Conclusione
  19. English description

Documenti

  • Relazione completa: Alimentatori - 322.21 kB (Scaricato 384 volte)

Semplici esempi ASM x86

Posted in Assembly x86, Programmazione on maggio 16th, 2011 by Andrea – Be the first to comment

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 107 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.

Appunti di Sistemi Operativi

Posted in Sistemi operativi, Teoria informatica on maggio 10th, 2011 by Andrea – Be the first to comment

In questi documenti sono raccolti molti appunti riguardanti i corsi di Sistemi Operativi.

Sono presenti appunti teorici e pseudo – implementazioni.

Argomenti

  • Il problema della mutua esclusione e tecniche di risoluzione
  • Strumenti per la sincronizzazione tra processi: semafori e monitor
  • Struttura del nucleo di un sistema a processi
  • Modello a memoria comune
  • Modello a scambio di messaggi
  • Creazione e gestione di operazioni atomiche
  • Virtualizzazione ed emulazione
  • Sicurezza e protezione
  • Gestione di periferiche di Input/Output

Documenti

Progetto VideoStore (C#)

Posted in Ingegneria del software, Teoria informatica on maggio 9th, 2011 by Andrea – 1 Comment

Questo progetto è stato realizzato nell’ambito del corso di Ingegneria del software L-A del corso di studi triennale in Ingegneria Informatica, anno accademico 2009/2010.

Sommario

  • Descrizione del problema
  • Analisi del testo
  • Specifica dei requisiti
  • Stabilità dei requisiti
  • Analisi dei rischi
  • Analisi dei componenti esterni
  • Glossario dei termini
  • Casi d’uso
  • Scenari
  • Diagramma statico delle classi
  • Scelta della tecnologia di progettazione
  • Diagramma delle classi di progettazione e discussione delle scelte progettuali (principi di progettazione e design pattern)
  • Diagrammi di sequenza

Autori

  • Andrea Asta
  • Gianluca Gallo
  • Thomas Bridi

Documenti

Sistema di statistiche per la pallavolo con PIC 16F877, LCD, Tastiera, RS232, Portale Web

Posted in Elettronica digitale, Elettronica e Hardware, Hardware, Microcontrollori, PHP, PIC, Programmazione, Sport on aprile 21st, 2011 by Andrea – Be the first to comment

Scopo del progetto è la realizzazione di un sistema completo di rilevazioni statistiche relative ad una partita di pallavolo.

Il sistema si compone di:

  • Un dispositivo portatile per la rilevazione durante la partita
  • Un software per calcolatori elettronici (PC) che permetta il download dei dati dal dispositivo
  • Un software lato server che permetta l’archiviazione e la consultazione online di tutti i dati archiviati sulla base di dati

Sommario

  1. Descrizione completa PIC 16F877A
  2. Teoria della trasmissione seriale asincrona RS232
  3. Descrizione completa display LCD Hitachi HD44780
  4. Descrizione circuito ad alimentazione doppia
  5. Progettazione del database MySQL e interfaccia Web
  6. Sviluppo del progetto
  7. Conclusioni
  8. Parte in inglese

Documenti

  • Relazione completa e codice: SPA - 3.67 MB (Scaricato 269 volte)

Pilotaggio di un motore passo passo con PIC16F84

Posted in Elettronica analogica, Elettronica e Hardware, Elettrotecnica, Microcontrollori, PIC, Programmazione on aprile 21st, 2011 by Andrea – 2 Comments

Si desidera realizzare un controllo per un motore passo-passo a due fa- si più presa centrale per mezzo di un microcontrollore PIC 16F84A.
La console di comando prevede:

  • Un pulsante Start/Stop operante in modalità toggle
  • Un pulsante verso di rotazione (CW/CCW) operante in modalità toggle
  • Due interruttori switch, per mezzo dei quali è possibile selezionare quattro differenti velocità di rotazione
  • Due interruttori switch, per mezzo dei quali è possibile selezionare tre differenti modalità di rotazione del motore (Normal Drive, Full Step, Half Step)
  • Un led verde, indicante, quando acceso, la modalità Start
  • Un led rosso, indicante, quando acceso, il verso orario
  • Un Test Point per debug tramite oscilloscopio, generante un’onda quadra a 500Hz
  • Le uscite per i quattro poli del motore, collegate ad un buffer ULN2803A

Sommario

  1. Descrizione completa PIC 16F84 e suoi componenti
  2. Descrizione completa motori a passo
  3. Schema elettronico
  4. Programmazione

Documenti