Anteprima
Vedrai una selezione di 17 pagine su 77
Elementi di informatica - Appunti completi Pag. 1 Elementi di informatica - Appunti completi Pag. 2
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 6
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 11
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 16
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 21
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 26
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 31
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 36
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 41
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 46
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 51
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 56
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 61
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 66
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 71
Anteprima di 17 pagg. su 77.
Scarica il documento per vederlo tutto.
Elementi di informatica - Appunti completi Pag. 76
1 su 77
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Bus di sistema

Collega tra loro le varie funzionalità (CPU, memoria centrale ed interfacce). Il bus è sempre sotto la supervisione della CPU:

  • Seleziona l'interconnessione da attivare
  • Indica l'operazione da svolgere

Le unità funzionali si attivano solo dopo essere state selezionate dalla CPU. La durata dell'interconnessione dipende da:

  • Velocità di trasmissione del bus
  • Velocità dei dispositivi ad esso connessi

Il bus di sistema è suddiviso in base al tipo di informazione trasportata funzionalmente in 3 parti:

  • Bus dati: per trasferire dati ed istruzioni
  • Bus indirizzi: per trasportare gli indirizzi della cella di memoria o delle interfacce coinvolte nell'interconnessione
  • Bus di controllo: transitano i segnali di controllo che consentono di attivare le unità coinvolte in un trasferimento dati (sorgente e destinazione) e di definire la direzione dello scambio (scrittura o lettura)

Le operazioni possibili

Sono due: lettura e scrittura di una parola, posta ad un indirizzo specificato.

I principali produttori sono Intel ed AMD.

REGISTRI DELLA CPU:

Sono delle piccole celle di memoria utilizzate dal microprocessore, per svolgere le proprie mansioni.

I registri accumulatori (la quantità di questi è dipesa dal modello di CPU) rappresentano la memoria a breve termine e sono composti di un numero fisso di Bit (dipeso dal modello della CPU).

Questi registri vengono utilizzati per salvare gli operandi ed il risultato di un istruzione.

Esistono poi registri speciali che svolgono operazioni specifiche:

  • PC: program counter -> registro contatore delle istruzioni. Non conta le istruzioni ma contiene l'indirizzo della prossima cella da eseguire.
  • IR: instruction register -> registro delle istruzioni, contiene una copia dell'istruzione da eseguire.
  • PSW: processor status word -> contiene informazioni circa gli eventi che possono verificarsi a seguito dell'esecuzione di
un’istruzione MAR: memory address register -> contiene l’indirizzo della cella di memoria o dell’interfaccia dove andare a leggere o scrivere un dato MDR -> contiene il dato letto o da scrivere ALU: unità aritmetica logica -> componente che svolge operazioni aritmetiche (+, -, …) e logiche (and, or, not) sui registri accumulatori CU: unità di controllo -> è la componente che coordina il funzionamento della varie unità della CPU. Le sue funzioni sono:⁃ Decodifica delle istruzioni in base al loro codice operativo⁃ Mandare opportuni comandi (segnali di controllo) all’ALU, ai registri, al bus, ecc. CLOCK: periodo e frequenza Le varie unità funzionali della CPU devono operare in modo coordinato. Un generatore di impulsi elettronici detto Clock, fornisce una cadenza temporale che permette di sincronizzare tutte le attività elementari della CPU. Ad ogni impulso di Clock, l’unità di controllo esegue

una singola operazione. Un' istruzione può richiedere più cicli di Clock per essere completata. L' intervallo di tempo T tra due impulsi di Clock (detto periodo) nel segnale di Clock è prestabilito e costante. Il periodo di T deve essere impostato in modo tale da consentire a tutti i circuiti di completare correttamente le proprie operazioni. La frequenza di Clock è l'inverso del periodo (1/T) e rappresenta il numero di impulsi/cicli al secondo. La velocità di elaborazione di un microprocessore è strettamente collegata alla frequenza di Clock. La frequenza è misurata in Hz mentre il periodo in nanosecondi.

LINGUAGGIO MACCHINA

La CPU riconosce ed esegue un particolare set di istruzioni macchina, che appartengono al linguaggio macchina. I programmi che vengono caricati ed eseguiti dalla CPU sono scritti usando lo specifico linguaggio macchina di quel processore. Ogni modello di processore è in grado di comprendere ed eseguire

solo il proprio linguaggio macchina ISA. Tipologia delle istruzioni Le istruzioni seguite dalla CPU sono di 3 tipi:
  • Istruzioni aritmetica logiche (elaborazione dati):
    • Istruzioni algebriche: somma, sottrazione, moltiplicazione, ...
    • Istruzioni logiche: operatori logici come and, or, not
    • Istruzioni di confronto: >, <, =, <>, ...
  • Istruzioni di controllo del flusso di esecuzione:

    Le istruzioni che controllano il flusso alterano la normale esecuzione delle istruzioni e la basano su decisioni.

    Appartengono a questa categoria le istruzioni di salto:

    • Salto incondizionato (Jump): salta ad una determinata istruzione
    • Salto condizionato (branch): salta ad una determinata istruzione solo se si verifica una specifica condizione.

    Mediante questa tipologia di istruzioni è possibile implementare i costrutti selettivi (if, select, ...) ed iterativi (for, while, ...) a condizioni finale ed iniziale.

  • Istruzioni di trasferimento dell'informazioni:

    Scambio

di dati ed istruzioni tra CPU e memoria

Trasferimento dati ed istruzioni dalla CPU alle periferiche e viceversa.

FORMATO DELLE ISTRUZIONI MACCHINA

Le istruzioni del linguaggio macchina sono caratterizzate da:

  • Codice operativo -> che identifica il tipo di istruzione
  • Operandi -> rappresentano i dati su cui l'istruzione deve operare, oppure gli indirizzi delle celle dove prelevare le informazioni o memorizzare i risultati

La descrizione che definisce in un'istruzione la dimensione in bit del codice operativo, il numero degli operandi e la loro tipologia viene detto formato di istruzione.

CODICE OPERATIVO

Il codice operativo identifica il tipo di istruzione. A seconda del codice operativo cambia il numero degli operandi e la loro dimensione.

OPERANDI

Il codice operativo di ogni istruzione macchina definisce se si tratta di un operando sorgente o di destinazione. Può essere:

  • Valore costante: operando immediato (numero)
  • Indirizzo di memoria: operando di memoria
in linguaggio Assembly in linguaggio macchina è chiamata assembler. L'assembler legge il codice Assembly e lo traduce in una sequenza di istruzioni binarie che la CPU può eseguire direttamente. Il codice Assembly è composto da istruzioni, che corrispondono a operazioni specifiche che la CPU può eseguire, e da direttive, che forniscono informazioni aggiuntive al compilatore o all'assembler. Per identificare immediatamente il significato di particolari indirizzi di memoria o registri, è possibile utilizzare delle etichette. Le etichette sono dei simboli che vengono associati a un indirizzo di memoria o a un registro specifico. In questo modo, invece di dover ricordare gli indirizzi o i registri specifici, è possibile utilizzare le etichette per riferirsi ad essi. Il linguaggio Assembly è specifico per ogni tipo di CPU, quindi un programma scritto in Assembly per un processore Intel non può essere eseguito su un processore AMD, ad esempio. Ogni processore ha le sue istruzioni e le sue funzioni uniche. Nonostante sia un linguaggio a basso livello, il linguaggio Assembly richiede comunque un processo di traduzione per essere utilizzato dalla CPU. Questo processo di traduzione viene eseguito dall'assembler, che converte il codice Assembly in codice macchina comprensibile dalla CPU. In conclusione, il linguaggio Assembly è una rappresentazione simbolica del linguaggio macchina del calcolatore, che utilizza codifiche testuali al posto dei bit. È un linguaggio a basso livello, specifico per ogni tipo di CPU, e richiede un processo di traduzione per essere utilizzato dalla CPU.
  1. FETCH (prelievo): prende l'istruzione da eseguire (il cui indirizzo RAM è contenuto nel registro PC) dalla memoria e la inserisce nel registro istruzioni IR. In seguito incremento il program Counter (PC) in modo che punti all'indirizzo della parola contenente l'istruzione successiva da eseguire
  2. DECODE (decodifica): determina il tipo di istruzione da eseguire. Se l'istruzione utilizza il contenuto di una parola in memoria, determina dove si trova e, se necessario, la carica nel registro della CPU
  3. EXECUTE: esegue l'operazione
  4. Ritorno allo step 1

istruzione corrente IR:

  • Invio sul bus indirizzi del valore nel PC
  • Attivazione del comando leggi sul bus di controllo
  • Copia del contenuto del registro MDR (bus dati) che contiene l'istruzione da eseguire all'interno del registro IR
  • Successivo incremento del contenuto del PC

DECODE: decodifica

La CU esamina l'istruzione nel registro IR per determinare quale operazione svolgere e quali siano i suoi operandi.

ESECUZIONE:

Le unità coinvolte vengono opportunamente comandate dall'unità di controllo ed avviene l'esecuzione. Il ciclo ricomincia dal prelievo dell'istruzione successiva.

MEMORIA CACHE

La memoria cache è una memoria rapida che permette di abbassare i tempi di attesa della CPU causati dalla bassa velocità di accesso della memoria centrale. La memoria centrale ha una velocità molto più bassa rispetto a quella di esecuzione del processore; la CPU deve rallentare ed attendere il trasferimento.

dell' istruzione successiva (la CPU si adegua alla velocità della memoria centrale). Le memorie utilizzate per la cache (static RAM) hanno invece un tempo che tende ad avvicinarsi a quello dei registri interni del processore. Trattano solo i dati e le istruzioni che devono essere elaborati dalla CPU nell'immediato. La memoria cache ha quindi l'obbiettivo di disaccoppiare i dispositivi caratterizzati da velocità operative più lente da quelli con velocità maggiori, in modo da non subire rallentamenti. L'idea è quella di pre-caricare in cache un'istruzione in modo tale che la CPU possa sempre partire dalla successiva pre-caricata senza subire ritardi. Un esempio di cache è la memoria tampone (buffer) delle stampanti. In essa viene immagazzinato il file di stampa prima di essere stampato, così da disaccoppiare il computer che crede di aver già completato la procedura di stampa. I computer recenti hanno più.

livelli di memoria cache:

Memoria cache di primo livello (L1) -> direttamente integrata nel processore. Essa è suddivisa in due parti, cache istruzioni e cache dati. La cache dati contiene i dati recentemente utilizzati dal processore. Le cache di primo livello sono rapidissime tanto da avvicinarsi al tempo dei registri interni del processore.

Memoria cache di secondo livello (L2) -> è posta all'interno del case contente la CPU. Nei processori multicore, ognuno ha la sua L1 ed L2. La cache di secondo livello è meno rapida e meno costosa, ma più veloce della RAM.

Memoria cache di terzo livello (L3) -> Nei multicore è condivisa tra tutti i core.

Tutti questi livelli di cache permettono di ridurre il tempo di attesa (o di latenza) dal momento in cui viene inviato il comando.

Dettagli
Publisher
A.A. 2022-2023
77 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher massy29 di informazioni apprese con la frequenza delle lezioni di Elementi di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Brescia o del prof Sechi Marco.